ide/patch/kickstart.nvim/updates.patch
João Paulo Dubas 9cee421a21 chore(elixir): add elixir lsp for version 1.12 (#19)
Explicitly add an elixir lsp suitable to elixir version 1.12.

Reviewed-on: #19
2023-12-08 11:53:14 +00:00

139 lines
4.1 KiB
Diff

diff --git a/init.lua b/init.lua
index 3a98da0..e8c5b7d 100644
--- a/init.lua
+++ b/init.lua
@@ -229,7 +229,7 @@ require('lazy').setup({
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
--
-- For additional information see: https://github.com/folke/lazy.nvim#-structuring-your-plugins
- -- { import = 'custom.plugins' },
+ { import = 'custom.plugins' },
}, {})
-- [[ Setting options ]]
@@ -239,11 +239,12 @@ require('lazy').setup({
-- Set highlight on search
vim.o.hlsearch = false
--- Make line numbers default
+-- Make relative line numbers default
vim.wo.number = true
+vim.wo.relativenumber = true
--- Enable mouse mode
-vim.o.mouse = 'a'
+-- Disable mouse mode
+vim.o.mouse = ''
-- Sync clipboard between OS and Neovim.
-- Remove this option if you want your OS clipboard to remain independent.
@@ -273,6 +274,14 @@ vim.o.completeopt = 'menuone,noselect'
-- NOTE: You should make sure your terminal supports this
vim.o.termguicolors = true
+-- Set foldmethod
+-- See `:help foldmethod`
+vim.opt.foldmethod = 'expr'
+vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
+vim.opt.foldnestmax = 5
+vim.opt.foldlevel = 1
+vim.opt.foldenable = false
+
-- [[ Basic Keymaps ]]
-- Keymaps for better default experience
@@ -378,11 +387,33 @@ vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc =
vim.defer_fn(function()
require('nvim-treesitter.configs').setup {
-- Add languages to be installed here that you want installed for treesitter
- ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim', 'bash' },
-
+ ensure_installed = {
+ 'css',
+ 'dockerfile',
+ 'eex',
+ 'elixir',
+ 'erlang',
+ 'gitcommit',
+ 'go',
+ 'heex',
+ 'html',
+ 'http',
+ 'javascript',
+ 'json',
+ 'lua',
+ 'markdown',
+ 'markdown_inline',
+ 'python',
+ 'sql',
+ 'toml',
+ 'tsx',
+ 'typescript',
+ 'vim',
+ 'vimdoc',
+ 'yaml'
+ },
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
auto_install = false,
-
highlight = { enable = true },
indent = { enable = true },
incremental_selection = {
@@ -511,19 +542,24 @@ require('mason-lspconfig').setup()
-- If you want to override the default filetypes that your language server will attach to you can
-- define the property 'filetypes' to the map in question.
local servers = {
- -- clangd = {},
- -- gopls = {},
- -- pyright = {},
- -- rust_analyzer = {},
- -- tsserver = {},
- -- html = { filetypes = { 'html', 'twig', 'hbs'} },
-
+ elixirls = {
+ elixirLS = {
+ dialyzerEnabled = true,
+ dialyzerFormat = "dialyxir_long",
+ fetchDeps = false,
+ mixEnv = "test"
+ }
+ },
+ gopls = {},
+ html = { filetypes = { 'html', 'twig', 'hbs'} },
lua_ls = {
Lua = {
workspace = { checkThirdParty = false },
telemetry = { enable = false },
},
},
+ pyright = {},
+ tsserver = {},
}
-- Setup neovim lua configuration
@@ -542,12 +578,23 @@ mason_lspconfig.setup {
mason_lspconfig.setup_handlers {
function(server_name)
- require('lspconfig')[server_name].setup {
+ local opts = {
capabilities = capabilities,
on_attach = on_attach,
settings = servers[server_name],
filetypes = (servers[server_name] or {}).filetypes,
}
+ if server_name == 'elixirls' then
+ local version = vim.fn.system('rtx current elixir') or ''
+ local match_version_111 = string.match(version, '^1.11')
+ local match_version_112 = string.match(version, '^1.12')
+ if match_version_111 ~= nil then
+ opts = vim.tbl_extend('keep', opts, { cmd = { vim.fn.expand('$LOCAL_SRC_HOME') .. '/elixir-ls/v0.12.0/release/language_server.sh' } })
+ elseif match_version_112 ~= nil then
+ opts = vim.tbl_extend('keep', opts, { cmd = { vim.fn.expand('$LOCAL_SRC_HOME') .. '/elixir-ls/v0.14.6/release/language_server.sh' } })
+ end
+ end
+ require('lspconfig')[server_name].setup(opts)
end,
}