-------------------------------------------------------------------------------- -- _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 ) 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, }, }