From 213e3961fa637e4dbe4ef1ea5fceadcb372e020e Mon Sep 17 00:00:00 2001 From: chaeing Date: Sat, 31 Jul 2021 11:28:59 -0700 Subject: [Feature] Rename lv-config.lua to config.lua (#1193) * Rename example config files * Update user config path in installer * Update user config path with a variable * Update default user config file to config.lua * Add fallback to lv-config if config.lua not found * Add global variable USER_CONFIG_PATH --- .luacheckrc | 38 +++++------ README.md | 8 +-- init.lua | 24 ++++++- lua/core/autocmds.lua | 2 +- lua/core/dashboard.lua | 3 +- lua/core/terminal.lua | 2 +- lua/default-config.lua | 2 +- lua/utils/init.lua | 2 +- utils/installer/config.example-no-ts.lua | 80 +++++++++++++++++++++++ utils/installer/config.example.lua | 98 +++++++++++++++++++++++++++++ utils/installer/install.sh | 6 +- utils/installer/lv-config.example-no-ts.lua | 80 ----------------------- utils/installer/lv-config.example.lua | 98 ----------------------------- 13 files changed, 231 insertions(+), 212 deletions(-) create mode 100644 utils/installer/config.example-no-ts.lua create mode 100644 utils/installer/config.example.lua delete mode 100644 utils/installer/lv-config.example-no-ts.lua delete mode 100644 utils/installer/lv-config.example.lua diff --git a/.luacheckrc b/.luacheckrc index b55bbb23..a3875f91 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,31 +1,31 @@ -- vim: ft=lua tw=80 stds.nvim = { - globals = { - "lvim", - vim = { fields = { "g" } }, - "CONFIG_PATH", - "CACHE_PATH", - "DATA_PATH", - "TERMINAL", - "USER", + globals = { + "lvim", + vim = { fields = { "g" } }, + "CONFIG_PATH", + "CACHE_PATH", + "DATA_PATH", + "TERMINAL", + "USER", "C", "Config", "WORKSPACE_PATH", "JAVA_LS_EXECUTABLE", "MUtils", - os = {fields = {"capture"}} - }, - read_globals = { - "jit", - "os", - "vim", - -- vim = { fields = { "cmd", "api", "fn", "o" } }, - }, + "USER_CONFIG_PATH", + os = { fields = { "capture" } }, + }, + read_globals = { + "jit", + "os", + "vim", + -- vim = { fields = { "cmd", "api", "fn", "o" } }, + }, } std = "lua51+nvim" - -- Don't report unused self arguments of methods. self = false @@ -33,6 +33,6 @@ self = false cache = true ignore = { - "631", -- max_line_length - "212/_.*", -- unused argument, for vars with "_" prefix + "631", -- max_line_length + "212/_.*", -- unused argument, for vars with "_" prefix } diff --git a/README.md b/README.md index 5450a530..903a2c23 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,9 @@ LVBRANCH=rolling bash <(curl -s https://raw.githubusercontent.com/ChristianChiar * The latest changes to LunarVim require you to [remove it completely](https://github.com/ChristianChiarulli/LunarVim/wiki/Uninstalling-LunarVim) before upgrading * Going forward LunarVim will no longer reside in the nvim configuration folder. LunarVim has been moved to `~/.local/share/lunarvim`. * To launch Lunarvim use the new `lvim` command. `nvim` will only launch standard neovim. -* Your personal configuration file (`lv-config.lua`) can now be found in `~/.config/lvim`. You can initialize this folder as a git repository to track changes to your configuration files. +* Your personal configuration file (`config.lua`) can now be found in `~/.config/lvim`. You can initialize this folder as a git repository to track changes to your configuration files. * If you want to keep launching LunarVim with the `nvim` command, add an alias entry to your shell's config file: `alias nvim=lvim`. To temporarily revert to the default `nvim` prefix it with a backslash `\nvim`. -* Many options formerly available in `lv-config.lua` have been renamed. For details [look here](https://github.com/ChristianChiarulli/LunarVim/wiki/Breaking-changes-in-rolling) +* Many options formerly available in `config.lua` have been renamed. For details [look here](https://github.com/ChristianChiarulli/LunarVim/wiki/Breaking-changes-in-rolling) ### Fixing installation problems If your installation is stuck on `Ok to remove? [y/N]`, it means there are some leftovers, \ @@ -60,13 +60,13 @@ then run nvim and wait for treesitter to finish the installation Just enter `:LspInstall` followed by `` to see your options -**NOTE** I recommend installing `lua` for autocomplete in `lv-config.lua` +**NOTE** I recommend installing `lua` for autocomplete in `config.lua` For the julia language server look [here](https://github.com/ChristianChiarulli/LunarVim/wiki/Enabling-a-language-server#julia-support) ## Configuration file -To activate other plugins and language features use the `lv-config.lua` file provided in the `nvim` folder (`~/.config/nvim/lv-config.lua`) in the master branch or (`~/.config/lvim/lv-config.lua`) on rolling +To activate other plugins and language features use the `lv-config.lua` file provided in the `nvim` folder (`~/.config/nvim/lv-config.lua`) in the master branch or (`~/.config/lvim/config.lua`) on rolling Example: diff --git a/init.lua b/init.lua index 92ec3d4b..a69fde44 100644 --- a/init.lua +++ b/init.lua @@ -11,12 +11,32 @@ vim.cmd [[ set runtimepath^=~/.local/share/lunarvim/lvim/after ]] -- vim.opt.rtp:append() instead of vim.cmd ? + +local function file_exists(name) + local f = io.open(name, "r") + if f ~= nil then + io.close(f) + return true + else + return false + end +end + +local lvim_path = os.getenv "HOME" .. "/.config/lvim/" +USER_CONFIG_PATH = lvim_path .. "config.lua" +local config_exist = file_exists(USER_CONFIG_PATH) +if not config_exist then + USER_CONFIG_PATH = lvim_path .. "lv-config.lua" + print "Rename ~/.config/lvim/lv-config.lua to config.lua" +end + require "default-config" local autocmds = require "core.autocmds" require("settings").load_options() -local status_ok, error = pcall(vim.cmd, "luafile ~/.config/lvim/lv-config.lua") + +local status_ok, error = pcall(vim.cmd, "luafile " .. USER_CONFIG_PATH) if not status_ok then - print "something is wrong with your lv-config" + print("something is wrong with your " .. USER_CONFIG_PATH) print(error) end require("settings").load_commands() diff --git a/lua/core/autocmds.lua b/lua/core/autocmds.lua index 89590454..1bc49d37 100644 --- a/lua/core/autocmds.lua +++ b/lua/core/autocmds.lua @@ -27,7 +27,7 @@ lvim.autocommands = { "*", "setlocal formatoptions-=c formatoptions-=r formatoptions-=o", }, - { "BufWritePost", "lv-config.lua", "lua require('utils').reload_lv_config()" }, + { "BufWritePost", USER_CONFIG_PATH, "lua require('utils').reload_lv_config()" }, { "FileType", "qf", diff --git a/lua/core/dashboard.lua b/lua/core/dashboard.lua index 8d196458..2f14b9f1 100644 --- a/lua/core/dashboard.lua +++ b/lua/core/dashboard.lua @@ -43,8 +43,7 @@ M.config = function() }, d = { description = { " Settings " }, - -- command = ":e " .. CONFIG_PATH .. "/lv-config.lua", - command = ":e ~/.config/lvim/lv-config.lua", + command = ":e " .. USER_CONFIG_PATH, }, }, diff --git a/lua/core/terminal.lua b/lua/core/terminal.lua index 015341df..bd7815aa 100644 --- a/lua/core/terminal.lua +++ b/lua/core/terminal.lua @@ -32,7 +32,7 @@ M.config = function() background = "Normal", }, }, - -- Add executables on the lv-config file + -- Add executables on the config.lua -- { exec, keymap, name} -- lvim.builtin.terminal.execs = {{}} to overwrite -- lvim.builtin.terminal.execs[#lvim.builtin.terminal.execs+1] = {"gdb", "tg", "GNU Debugger"} diff --git a/lua/default-config.lua b/lua/default-config.lua index 6527ad77..d6063671 100644 --- a/lua/default-config.lua +++ b/lua/default-config.lua @@ -88,7 +88,7 @@ lvim = { }, plugins = { - -- use lv-config.lua for this not put here + -- use config.lua for this not put here }, autocommands = {}, diff --git a/lua/utils/init.lua b/lua/utils/init.lua index a404254b..b81ff4f4 100644 --- a/lua/utils/init.lua +++ b/lua/utils/init.lua @@ -81,7 +81,7 @@ end function utils.reload_lv_config() vim.cmd "source ~/.local/share/lunarvim/lvim/lua/settings.lua" - vim.cmd "source ~/.config/lvim/lv-config.lua" + vim.cmd("source " .. USER_CONFIG_PATH) vim.cmd "source ~/.local/share/lunarvim/lvim/lua/plugins.lua" local plugins = require "plugins" local plugin_loader = require("plugin-loader").init() diff --git a/utils/installer/config.example-no-ts.lua b/utils/installer/config.example-no-ts.lua new file mode 100644 index 00000000..c0df5b8b --- /dev/null +++ b/utils/installer/config.example-no-ts.lua @@ -0,0 +1,80 @@ +-- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT + +-- general +lvim.format_on_save = true +lvim.lint_on_save = true +lvim.colorscheme = "spacegray" + +-- keymappings +lvim.leader = "space" +-- overwrite the key-mappings provided by LunarVim for any mode, or leave it empty to keep them +-- lvim.keys.normal_mode = { +-- Page down/up +-- {'[d', ''}, +-- {']d', ''}, +-- +-- Navigate buffers +-- {'', ':bnext'}, +-- {'', ':bprevious'}, +-- } +-- if you just want to augment the existing ones then use the utility function +-- require("utils").add_keymap_insert_mode({ silent = true }, { +-- { "", ":w" }, +-- { "", "" }, +-- }) +-- you can also use the native vim way directly +-- vim.api.nvim_set_keymap("i", "", "compe#complete()", { noremap = true, silent = true, expr = true }) + +-- TODO: User Config for predefined plugins +-- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile +lvim.builtin.dashboard.active = true +lvim.builtin.terminal.active = true +lvim.builtin.nvimtree.side = "left" +lvim.builtin.nvimtree.show_icons.git = 0 + +-- if you don't want all the parsers change this to a table of the ones you want +lvim.builtin.treesitter.ensure_installed = {} +lvim.builtin.treesitter.ignore_install = { "haskell" } +lvim.builtin.treesitter.highlight.enabled = true + +-- generic LSP settings +-- you can set a custom on_attach function that will be used for all the language servers +-- See +-- lvim.lsp.on_attach_callback = function(client, bufnr) +-- local function buf_set_option(...) +-- vim.api.nvim_buf_set_option(bufnr, ...) +-- end +-- --Enable completion triggered by +-- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") +-- end + +-- set a formatter if you want to override the default lsp one (if it exists) +-- lvim.lang.python.formatters = { +-- { +-- exe = "black", +-- args = {} +-- } +-- } +-- set an additional linter +-- lvim.lang.python.linters = { +-- { +-- exe = "flake8", +-- args = {} +-- } +-- } + +-- Additional Plugins +-- lvim.plugins = { +-- {"folke/tokyonight.nvim"}, { +-- "ray-x/lsp_signature.nvim", +-- config = function() require"lsp_signature".on_attach() end, +-- event = "InsertEnter" +-- } +-- } + +-- Autocommands (https://neovim.io/doc/user/autocmd.html) +-- lvim.autocommands.custom_groups = { +-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" }, +-- } + +-- Additional Leader bindings for WhichKey diff --git a/utils/installer/config.example.lua b/utils/installer/config.example.lua new file mode 100644 index 00000000..843917a7 --- /dev/null +++ b/utils/installer/config.example.lua @@ -0,0 +1,98 @@ +--[[ +lvim is the global options object + +Linters should be +filled in as strings with either +a global executable or a path to +an executable +]] +-- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT + +-- general + +lvim.format_on_save = true +lvim.lint_on_save = true +lvim.colorscheme = "spacegray" +-- keymappings +lvim.leader = "space" +-- overwrite the key-mappings provided by LunarVim for any mode, or leave it empty to keep them +-- lvim.keys.normal_mode = { +-- Page down/up +-- {'[d', ''}, +-- {']d', ''}, +-- +-- Navigate buffers +-- {'', ':bnext'}, +-- {'', ':bprevious'}, +-- } +-- if you just want to augment the existing ones then use the utility function +-- require("utils").add_keymap_insert_mode({ silent = true }, { +-- { "", ":w" }, +-- { "", "" }, +-- }) +-- you can also use the native vim way directly +-- vim.api.nvim_set_keymap("i", "", "compe#complete()", { noremap = true, silent = true, expr = true }) + +-- TODO: User Config for predefined plugins +-- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile +lvim.builtin.dashboard.active = true +lvim.builtin.terminal.active = true +lvim.builtin.nvimtree.side = "left" +lvim.builtin.nvimtree.show_icons.git = 0 + +-- if you don't want all the parsers change this to a table of the ones you want +lvim.builtin.treesitter.ensure_installed = "maintained" +lvim.builtin.treesitter.ignore_install = { "haskell" } +lvim.builtin.treesitter.highlight.enabled = true + +-- generic LSP settings +-- you can set a custom on_attach function that will be used for all the language servers +-- See +-- lvim.lsp.on_attach_callback = function(client, bufnr) +-- local function buf_set_option(...) +-- vim.api.nvim_buf_set_option(bufnr, ...) +-- end +-- --Enable completion triggered by +-- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") +-- end + +-- set a formatter if you want to override the default lsp one (if it exists) +-- lvim.lang.python.formatters = { +-- { +-- exe = "black", +-- args = {} +-- } +-- } +-- set an additional linter +-- lvim.lang.python.linters = { +-- { +-- exe = "flake8", +-- args = {} +-- } +-- } + +-- Additional Plugins +-- lvim.plugins = { +-- {"folke/tokyonight.nvim"}, { +-- "ray-x/lsp_signature.nvim", +-- config = function() require"lsp_signature".on_attach() end, +-- event = "InsertEnter" +-- } +-- } + +-- Autocommands (https://neovim.io/doc/user/autocmd.html) +-- lvim.autocommands.custom_groups = { +-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" }, +-- } + +-- Additional Leader bindings for WhichKey +-- lvim.builtin.which_key.mappings["P"] = { "lua require'telescope'.extensions.project.project{}", "Projects" } +-- lvim.builtin.which_key.mappings["t"] = { +-- name = "+Trouble", +-- r = { "Trouble lsp_references", "References" }, +-- f = { "Trouble lsp_definitions", "Definitions" }, +-- d = { "Trouble lsp_document_diagnostics", "Diagnosticss" }, +-- q = { "Trouble quickfix", "QuickFix" }, +-- l = { "Trouble loclist", "LocationList" }, +-- w = { "Trouble lsp_workspace_diagnostics", "Diagnosticss" }, +-- } diff --git a/utils/installer/install.sh b/utils/installer/install.sh index abb35b99..d6691a92 100755 --- a/utils/installer/install.sh +++ b/utils/installer/install.sh @@ -114,7 +114,7 @@ cloneconfig() { mkdir -p "$HOME/.config/lvim" sudo cp "$HOME/.local/share/lunarvim/lvim/utils/bin/lvim" "/usr/local/bin" sudo chmod a+rx /usr/local/bin/lvim - cp "$HOME/.local/share/lunarvim/lvim/utils/installer/lv-config.example-no-ts.lua" "$HOME/.config/lvim/lv-config.lua" + cp "$HOME/.local/share/lunarvim/lvim/utils/installer/config.example-no-ts.lua" "$HOME/.config/lvim/config.lua" nvim -u ~/.local/share/lunarvim/lvim/init.lua --cmd "set runtimepath+=~/.local/share/lunarvim/lvim" --headless \ +'autocmd User PackerComplete sleep 100m | qall' \ @@ -127,9 +127,9 @@ cloneconfig() { printf "\nCompile Complete\n" if [ -e "$HOME/.local/share/lunarvim/lvim/init.lua" ]; then - echo 'lv-config already present' + echo 'config.lua already present' else - cp "$HOME/.local/share/lunarvim/lvim/utils/installer/lv-config.example.lua" "$HOME/.config/lvim/lv-config.lua" + cp "$HOME/.local/share/lunarvim/lvim/utils/installer/config.example.lua" "$HOME/.config/lvim/config.lua" fi } diff --git a/utils/installer/lv-config.example-no-ts.lua b/utils/installer/lv-config.example-no-ts.lua deleted file mode 100644 index c0df5b8b..00000000 --- a/utils/installer/lv-config.example-no-ts.lua +++ /dev/null @@ -1,80 +0,0 @@ --- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT - --- general -lvim.format_on_save = true -lvim.lint_on_save = true -lvim.colorscheme = "spacegray" - --- keymappings -lvim.leader = "space" --- overwrite the key-mappings provided by LunarVim for any mode, or leave it empty to keep them --- lvim.keys.normal_mode = { --- Page down/up --- {'[d', ''}, --- {']d', ''}, --- --- Navigate buffers --- {'', ':bnext'}, --- {'', ':bprevious'}, --- } --- if you just want to augment the existing ones then use the utility function --- require("utils").add_keymap_insert_mode({ silent = true }, { --- { "", ":w" }, --- { "", "" }, --- }) --- you can also use the native vim way directly --- vim.api.nvim_set_keymap("i", "", "compe#complete()", { noremap = true, silent = true, expr = true }) - --- TODO: User Config for predefined plugins --- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile -lvim.builtin.dashboard.active = true -lvim.builtin.terminal.active = true -lvim.builtin.nvimtree.side = "left" -lvim.builtin.nvimtree.show_icons.git = 0 - --- if you don't want all the parsers change this to a table of the ones you want -lvim.builtin.treesitter.ensure_installed = {} -lvim.builtin.treesitter.ignore_install = { "haskell" } -lvim.builtin.treesitter.highlight.enabled = true - --- generic LSP settings --- you can set a custom on_attach function that will be used for all the language servers --- See --- lvim.lsp.on_attach_callback = function(client, bufnr) --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --Enable completion triggered by --- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") --- end - --- set a formatter if you want to override the default lsp one (if it exists) --- lvim.lang.python.formatters = { --- { --- exe = "black", --- args = {} --- } --- } --- set an additional linter --- lvim.lang.python.linters = { --- { --- exe = "flake8", --- args = {} --- } --- } - --- Additional Plugins --- lvim.plugins = { --- {"folke/tokyonight.nvim"}, { --- "ray-x/lsp_signature.nvim", --- config = function() require"lsp_signature".on_attach() end, --- event = "InsertEnter" --- } --- } - --- Autocommands (https://neovim.io/doc/user/autocmd.html) --- lvim.autocommands.custom_groups = { --- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" }, --- } - --- Additional Leader bindings for WhichKey diff --git a/utils/installer/lv-config.example.lua b/utils/installer/lv-config.example.lua deleted file mode 100644 index 843917a7..00000000 --- a/utils/installer/lv-config.example.lua +++ /dev/null @@ -1,98 +0,0 @@ ---[[ -lvim is the global options object - -Linters should be -filled in as strings with either -a global executable or a path to -an executable -]] --- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT - --- general - -lvim.format_on_save = true -lvim.lint_on_save = true -lvim.colorscheme = "spacegray" --- keymappings -lvim.leader = "space" --- overwrite the key-mappings provided by LunarVim for any mode, or leave it empty to keep them --- lvim.keys.normal_mode = { --- Page down/up --- {'[d', ''}, --- {']d', ''}, --- --- Navigate buffers --- {'', ':bnext'}, --- {'', ':bprevious'}, --- } --- if you just want to augment the existing ones then use the utility function --- require("utils").add_keymap_insert_mode({ silent = true }, { --- { "", ":w" }, --- { "", "" }, --- }) --- you can also use the native vim way directly --- vim.api.nvim_set_keymap("i", "", "compe#complete()", { noremap = true, silent = true, expr = true }) - --- TODO: User Config for predefined plugins --- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile -lvim.builtin.dashboard.active = true -lvim.builtin.terminal.active = true -lvim.builtin.nvimtree.side = "left" -lvim.builtin.nvimtree.show_icons.git = 0 - --- if you don't want all the parsers change this to a table of the ones you want -lvim.builtin.treesitter.ensure_installed = "maintained" -lvim.builtin.treesitter.ignore_install = { "haskell" } -lvim.builtin.treesitter.highlight.enabled = true - --- generic LSP settings --- you can set a custom on_attach function that will be used for all the language servers --- See --- lvim.lsp.on_attach_callback = function(client, bufnr) --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --Enable completion triggered by --- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") --- end - --- set a formatter if you want to override the default lsp one (if it exists) --- lvim.lang.python.formatters = { --- { --- exe = "black", --- args = {} --- } --- } --- set an additional linter --- lvim.lang.python.linters = { --- { --- exe = "flake8", --- args = {} --- } --- } - --- Additional Plugins --- lvim.plugins = { --- {"folke/tokyonight.nvim"}, { --- "ray-x/lsp_signature.nvim", --- config = function() require"lsp_signature".on_attach() end, --- event = "InsertEnter" --- } --- } - --- Autocommands (https://neovim.io/doc/user/autocmd.html) --- lvim.autocommands.custom_groups = { --- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" }, --- } - --- Additional Leader bindings for WhichKey --- lvim.builtin.which_key.mappings["P"] = { "lua require'telescope'.extensions.project.project{}", "Projects" } --- lvim.builtin.which_key.mappings["t"] = { --- name = "+Trouble", --- r = { "Trouble lsp_references", "References" }, --- f = { "Trouble lsp_definitions", "Definitions" }, --- d = { "Trouble lsp_document_diagnostics", "Diagnosticss" }, --- q = { "Trouble quickfix", "QuickFix" }, --- l = { "Trouble loclist", "LocationList" }, --- w = { "Trouble lsp_workspace_diagnostics", "Diagnosticss" }, --- } -- cgit v1.2.3