diff options
-rw-r--r-- | README.md | 32 | ||||
-rw-r--r-- | utils/installer/config.example-no-ts.lua | 112 | ||||
-rw-r--r-- | utils/installer/config.example.lua | 37 | ||||
-rw-r--r-- | utils/installer/install.ps1 | 7 | ||||
-rwxr-xr-x | utils/installer/install.sh | 4 |
5 files changed, 57 insertions, 135 deletions
@@ -79,19 +79,30 @@ lvim.builtin.treesitter.ignore_install = { "haskell" } -- Disable virtual text lvim.lsp.diagnostics.virtual_text = false --- set a formatter if you want to override the default lsp one (if it exists) -lvim.lang.python.formatters = { +-- Select which servers should be configured manually. Requires `:LvimCacheRest` to take effect. +-- See the full default list `:lua print(vim.inspect(lvim.lsp.override))` +vim.list_extend(lvim.lsp.override, { "pyright" }) + +-- set a formatter, this will override the language server formatting capabilities (if it exists) +local formatters = require "lvim.lsp.null-ls.formatters" +formatters.setup { + { exe = "black" }, { - exe = "black", - args = {} - } + exe = "prettier", + ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. + filetypes = { "typescript", "typescriptreact" }, + }, } --- set an additional linter -lvim.lang.python.linters = { + +-- set additional linters +local linters = require "lvim.lsp.null-ls.linters" +linters.setup { + { exe = "black" }, { - exe = "flake8", - args = {} - } + exe = "eslint_d", + ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. + filetypes = { "javascript", "javascriptreact" }, + }, } @@ -118,7 +129,6 @@ lvim.plugins = { ## Breaking changes - `lvim.lang.FOO.lsp` is no longer supported after #1584. - You can either use `:NlspConfig` for most of the settings you might need, or override the setup by adding an entry to `lvim.lsp.override = { "FOO" }`. ## Resources diff --git a/utils/installer/config.example-no-ts.lua b/utils/installer/config.example-no-ts.lua deleted file mode 100644 index ddae7e82..00000000 --- a/utils/installer/config.example-no-ts.lua +++ /dev/null @@ -1,112 +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 = "onedarker" - --- keymappings [view all the defaults by pressing <leader>Lk] -lvim.leader = "space" --- add your own keymapping -lvim.keys.normal_mode["<C-s>"] = ":w<cr>" --- unmap a default keymapping --- lvim.keys.normal_mode["<C-Up>"] = "" --- edit a default keymapping --- lvim.keys.normal_mode["<C-q>"] = ":q<cr>" - --- Change Telescope navigation to use j and k for navigation and n and p for history in both input and normal mode. --- we use protected-mode (pcall) just in case the plugin wasn't loaded yet. --- local _, actions = pcall(require, "telescope.actions") --- lvim.builtin.telescope.defaults.mappings = { --- -- for input mode --- i = { --- ["<C-j>"] = actions.move_selection_next, --- ["<C-k>"] = actions.move_selection_previous, --- ["<C-n>"] = actions.cycle_history_next, --- ["<C-p>"] = actions.cycle_history_prev, --- }, --- -- for normal mode --- n = { --- ["<C-j>"] = actions.move_selection_next, --- ["<C-k>"] = actions.move_selection_previous, --- }, --- } - --- Use which-key to add extra bindings with the leader-key prefix --- lvim.builtin.which_key.mappings["P"] = { "<cmd>Telescope projects<CR>", "Projects" } --- lvim.builtin.which_key.mappings["t"] = { --- name = "+Trouble", --- r = { "<cmd>Trouble lsp_references<cr>", "References" }, --- f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" }, --- d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnosticss" }, --- q = { "<cmd>Trouble quickfix<cr>", "QuickFix" }, --- l = { "<cmd>Trouble loclist<cr>", "LocationList" }, --- w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnosticss" }, --- } - --- 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.setup.view.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 <https://github.com/neovim/nvim-lspconfig#keybindings-and-completion> --- 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 <c-x><c-o> --- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") --- end --- you can overwrite the null_ls setup table (useful for setting the root_dir function) --- lvim.lsp.null_ls.setup = { --- root_dir = require("lspconfig").util.root_pattern("Makefile", ".git", "node_modules"), --- } --- or if you need something more advanced --- lvim.lsp.null_ls.setup.root_dir = function(fname) --- if vim.bo.filetype == "javascript" then --- return require("lspconfig/util").root_pattern("Makefile", ".git", "node_modules")(fname) --- or require("lspconfig/util").path.dirname(fname) --- elseif vim.bo.filetype == "php" then --- return require("lspconfig/util").root_pattern("Makefile", ".git", "composer.json")(fname) or vim.fn.getcwd() --- else --- return require("lspconfig/util").root_pattern("Makefile", ".git")(fname) or require("lspconfig/util").path.dirname(fname) --- end --- 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" }, --- } diff --git a/utils/installer/config.example.lua b/utils/installer/config.example.lua index 897b2cf0..5f516f2f 100644 --- a/utils/installer/config.example.lua +++ b/utils/installer/config.example.lua @@ -78,6 +78,18 @@ lvim.builtin.treesitter.ignore_install = { "haskell" } lvim.builtin.treesitter.highlight.enabled = true -- generic LSP settings + +-- ---@usage disable automatic installation of servers +-- lvim.lsp.automatic_servers_installation = false + +-- ---@usage Select which servers should be configured manually. Requires `:LvimCacheRest` to take effect. +-- See the full default list `:lua print(vim.inspect(lvim.lsp.override))` +-- vim.list_extend(lvim.lsp.override, { "pyright" }) + +-- ---@usage setup a server -- see: https://www.lunarvim.org/languages/#overriding-the-default-configuration +-- local opts = {} -- check the lspconfig documentation for a list of all possible options +-- require("lvim.lsp.manager").setup("pylsp", opts) + -- you can set a custom on_attach function that will be used for all the language servers -- See <https://github.com/neovim/nvim-lspconfig#keybindings-and-completion> -- lvim.lsp.on_attach_callback = function(client, bufnr) @@ -103,17 +115,26 @@ lvim.builtin.treesitter.highlight.enabled = true -- end -- end --- set a formatter if you want to override the default lsp one (if it exists) --- lvim.lang.python.formatters = { +-- -- set a formatter, this will override the language server formatting capabilities (if it exists) +-- local formatters = require "lvim.lsp.null-ls.formatters" +-- formatters.setup { +-- { exe = "black" }, -- { --- exe = "black", --- } +-- exe = "prettier", +-- ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. +-- filetypes = { "typescript", "typescriptreact" }, +-- }, -- } --- set an additional linter --- lvim.lang.python.linters = { + +-- -- set additional linters +-- local linters = require "lvim.lsp.null-ls.linters" +-- linters.setup { +-- { exe = "black" }, -- { --- exe = "flake8", --- } +-- exe = "eslint_d", +-- ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. +-- filetypes = { "javascript", "javascriptreact" }, +-- }, -- } -- Additional Plugins diff --git a/utils/installer/install.ps1 b/utils/installer/install.ps1 index 4ec499c6..c46bbfc2 100644 --- a/utils/installer/install.ps1 +++ b/utils/installer/install.ps1 @@ -222,8 +222,11 @@ function setup_lvim() { New-Item "$env:LUNARVIM_CONFIG_DIR" -ItemType Directory } - Copy-Item "$env:LUNARVIM_RUNTIME_DIR\lvim\utils\installer\config.example-no-ts.lua" ` - "$env:LUNARVIM_CONFIG_DIR\config.lua" + if (Test-Path "$env:LUNARVIM_CONFIG_DIR\config.lua") { + Remove-Item -Force "$env:LUNARVIM_CONFIG_DIR\config.lua" + } + + Out-File -FilePath "$env:LUNARVIM_CONFIG_DIR\config.lua" Write-Output "Packer setup complete" diff --git a/utils/installer/install.sh b/utils/installer/install.sh index 8438ad8b..2e4fd55e 100755 --- a/utils/installer/install.sh +++ b/utils/installer/install.sh @@ -353,8 +353,8 @@ function setup_lvim() { echo "Preparing Packer setup" - cp "$LUNARVIM_RUNTIME_DIR/lvim/utils/installer/config.example-no-ts.lua" \ - "$LUNARVIM_CONFIG_DIR/config.lua" + rm -f "$LUNARVIM_CONFIG_DIR/config.lua" + touch "$LUNARVIM_CONFIG_DIR/config.lua" "$INSTALL_PREFIX/bin/lvim" --headless \ -c 'autocmd User PackerComplete quitall' \ |