You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

193 lines
6.4 KiB

--------------------------------------------------------------------------------
-- _config.lua --
--------------------------------------------------------------------------------
--
-- This is where you change settings for nukevim modules.
--
--
-- * Each key in this table is a nukevim module. (Valid modules are any
-- file under `lua/module/`).
-- * Each value in this table is the configuration for the module.
-- * The configuration _must_ be a table (`{ ... }`).
-- * The configuration _may_ include a `enable` property.
-- * If this is present and not `true`, then the module will be skipped.
-- * The configuration _may_ include a `order` property.
-- * Modules are processed from lowest to highest order number.
-- * Modules which do not have an order specified are processed last.
-- * Those with matching orders (including nil) will be processed in
-- an _undefined order_. And I mean undefined. I have no idea what lua
-- is doing but it's basically random.
--
return {
--------------------------------------------------------------------------------
-- CORE --
--------------------------------------------------------------------------------
------------------------------------------------------------
-- Plugins
--
-- Manage loading and initializing vim plugins.
--
-- * The general plugin list is kept in `_plugins.lua` (and
-- pulled in by the `require()` below. Add your plugins
-- there.
-- * Some modules have their own plugin dependencies. Those
-- modules automatically register their own plugins. They
-- do not need to also be listed here.
--
plugins = {
order = 10,
-- Path on disk to store the actual plugin code at.
path = "~/.config/nvim/plugins",
-- A list of plugins to install and load.
-- Load from `_plugins.lua`.
plugins = require('config/_plugins')
},
------------------------------------------------------------
-- Keymap
--
-- Handle mapping keys to things and, optionally, generating
-- a UI for showing a legend.
--
-- * The general keymap list is kept in `_keymap.lua` (and
-- pulled in by the `require()` below. Add your keymaps
-- there.
-- * Many keymaps associated with plugins are defined in
-- the plugin's configuration. Look at the plugins module
-- configuration for those.
-- * Many modules have their own mappings that need to be
-- included. They automatically register them. They do
-- not need to also be listed here.
--
keymap = {
order = 20,
-- Whether to provide a UI/legend for the key mappings.
ui = {
-- If enabled, the `which-key` plugin will be set up and
-- all key bindings will be run through it.
-- If disabled, the plugin will not be included and all
-- key bindings will be registered through the nvim native API.
enable = true,
-- If enabled, the legend will show keys built-in to vim as well
-- as custom plugin/module key bindings.
-- If disabled, only custom plugin/module key bindings will be
-- shown.
show_builtin = false
},
-- The list of keymaps to register.
-- Load from `_keymap.lua`.
keys = require('config/_keymap')
},
------------------------------------------------------------
-- Settings
--
-- Allows setting vim's native configuration options and
-- global variables.
--
-- * The settings are kept in `_settings.lua` (and pulled in
-- by the `require()` below. Add your settings there.
-- * Several modules and plugins may also set options or
-- global variables. They automatically manage this and
-- the settings do not need to be listed here.
-- * In the event of a conflict between a module/plugin
-- and your settings file, your settings file will
-- _generally_ prevail.
--
settings = {
order = 30,
settings = require('config/_settings'),
},
--------------------------------------------------------------------------------
-- UI --
--------------------------------------------------------------------------------
------------------------------------------------------------
-- UI
--
-- General user interface settings
--
-- * These settings are split into two sections: tui and gui
-- * tui: these settings are _always_ applied
-- * gui: these settings are applied _on top of_ tui settings
-- when running vim in a gui such as neovim-qt
-- * If for some reason you want to set a tui theme but _not_
-- any theme for gui, you can set gui's theme to `default`.
--
ui = {
order = 40,
-- Base settings -- applied in terminal, and applied before
-- gui settings in gui
tui = {
-- Colorscheme to use (i.e., set colorscheme <this>)
theme = "base16-eighties",
-- If configured, this will apply styling to whitespace so
-- it is visible in the editor
-- If set to true, default styling will be applied.
-- If set to a string, the specified colour will be used as the
-- highlight for whitespace (e.g., `gray30`)
show_whitespace = true
},
-- Override settings for gui mode
gui = {
-- Set the font family and size to use
font = { family = 'Source Code Variable', size = 10 },
theme = 'base16-eighties',
show_whitespace = true
},
},
--------------------------------------------------------------------------------
-- PROGRAMMING --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- OTHER --
--------------------------------------------------------------------------------
------------------------------------------------------------
-- Syntax
--
-- More comprehensive and up-to-date syntax highlighting rules
--
-- This is basically just a plugin, but it requires a specific
-- global variable to be set earlier than the plugin system
-- allows (i.e., before the plugin itself is loaded) so it's
-- a module.
--
-- There are no options to configure.
--
syntax = {
order = 50,
},
-----------------------------------------------------------
phpunit = {
order = 60,
},
lsp = {
order = 70,
providers = {
intelephense = {
command = { 'intelephense', '--stdio' },
filetypes = { 'php' }
}
}
},
start = {
order = 80,
},
}