aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2025-12-03 10:36:10 +0100
committerRuben Beltran del Rio <jj@r.bdr.sh>2025-12-14 23:40:14 +0100
commit79f1a457511017c9ad68e4b0aa206f58b6b3a47f (patch)
treeb6d057a49ff0933be685731f7ea3e51aad46d26e /config
parentf1478b23dc185f8fe091c61044eefe3aacbe6ff2 (diff)
Add wmap syntax parser. Add swift LSP rules. Improve tranquil light
colors in neovim.
Diffstat (limited to 'config')
-rw-r--r--config/nvim/colors/tranquil-light.vim4
-rw-r--r--config/nvim/lazy-lock.json3
-rw-r--r--config/nvim/lua/lsp.lua47
-rw-r--r--config/nvim/lua/plugins.lua1
-rw-r--r--config/nvim/lua/treesitter_config.lua1
5 files changed, 54 insertions, 2 deletions
diff --git a/config/nvim/colors/tranquil-light.vim b/config/nvim/colors/tranquil-light.vim
index 449ea74..b05ec40 100644
--- a/config/nvim/colors/tranquil-light.vim
+++ b/config/nvim/colors/tranquil-light.vim
@@ -157,7 +157,9 @@ hi DiagnosticHint guifg=#0F261F guibg=#FFB4F0
hi DiagnosticUnderlineError guifg=#0F261F guisp=#FA2B00 gui=undercurl,italic cterm=undercurl,italic
" Documentation
-hi @comment.documentation guibg=#FAED8F
+hi @comment.documentation guibg=#FAED12
+hi link @lsp.mod.documentation.rust @comment.documentation
+hi link @lsp.mod.documentation.swift @comment.documentation
" FZF
hi @fzf.hlplus guifg=#FFFFFF
diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json
index 7d2145d..f474544 100644
--- a/config/nvim/lazy-lock.json
+++ b/config/nvim/lazy-lock.json
@@ -3,6 +3,7 @@
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"fzf-lua": { "branch": "main", "commit": "ed140c90465a18f893bb2f5fcfbc23c661e583cd" },
"gemini.vim": { "branch": "master", "commit": "c9efb59c97b71c28d4678c79fd21fbdd3a69d196" },
+ "jannotate.nvim": { "branch": "main", "commit": "7da4eb7a504ffc612c333d9337c36e142df55dc6" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"neogen": { "branch": "main", "commit": "d7f9461727751fb07f82011051338a9aba07581d" },
@@ -10,7 +11,6 @@
"nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
"nvim-dap": { "branch": "master", "commit": "5860c7c501eb428d3137ee22c522828d20cca0b3" },
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
- "nvim-dap-vscode-js": { "branch": "main", "commit": "03bd29672d7fab5e515fc8469b7d07cc5994bbf6" },
"nvim-lspconfig": { "branch": "master", "commit": "effe4bf2e1afb881ea67291c648b68dd3dfc927a" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
@@ -19,6 +19,7 @@
"oleoboard.nvim": { "branch": "main", "commit": "3652b39db3a8faca3fb767ace799479124bc79f3" },
"snes-syntax-vim": { "branch": "master", "commit": "a6a699c8905f7b6119bf91e44f960667d9f03d59" },
"tree-sitter-api-notation": { "branch": "main", "commit": "3113c6077d9ed1e662a891714ac00e1ee3bb7657" },
+ "tree-sitter-wmap": { "branch": "main", "commit": "c01881ae8910f11653e69d7bbded07e4413991bc" },
"undotree": { "branch": "master", "commit": "0f1c9816975b5d7f87d5003a19c53c6fd2ff6f7f" },
"vim-indent-object": { "branch": "master", "commit": "8ab36d5ec2a3a60468437a95e142ce994df598c6" },
"vim-togglelist": { "branch": "master", "commit": "48f0d30292efdf20edc883e61b121e6123e03df7" },
diff --git a/config/nvim/lua/lsp.lua b/config/nvim/lua/lsp.lua
index 3482564..2c2cbf2 100644
--- a/config/nvim/lua/lsp.lua
+++ b/config/nvim/lua/lsp.lua
@@ -1,3 +1,7 @@
+local util = require 'lspconfig.util'
+
+-- JAVASCRIPT FAMILY -----------------------------------------------------------
+
vim.lsp.config('ts_ls', {
cmd = { 'typescript-language-server', '--stdio' },
filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' },
@@ -19,6 +23,8 @@ vim.lsp.config('svelte', {
})
vim.lsp.enable('svelte')
+-- PYTHON ----------------------------------------------------------------------
+
vim.lsp.config('pyright', {
cmd = { 'pyright-langserver', '--stdio' },
filetypes = { 'python' },
@@ -26,6 +32,8 @@ vim.lsp.config('pyright', {
})
vim.lsp.enable('pyright')
+-- RUST ------------------------------------------------------------------------
+
vim.lsp.config('rust_analyzer', {
cmd = { 'rust-analyzer' },
filetypes = { 'rust' },
@@ -55,6 +63,8 @@ vim.lsp.config('rust_analyzer', {
})
vim.lsp.enable('rust_analyzer')
+-- LUA -------------------------------------------------------------------------
+
vim.lsp.config('lua_ls', {
cmd = { 'lua-language-server' },
filetypes = { 'lua' },
@@ -62,6 +72,8 @@ vim.lsp.config('lua_ls', {
})
vim.lsp.enable('lua_ls')
+-- GLEAM------------------------------------------------------------------------
+
vim.lsp.config('gleam', {
cmd = { 'gleam', 'lsp' },
filetypes = { 'gleam' },
@@ -69,6 +81,41 @@ vim.lsp.config('gleam', {
})
vim.lsp.enable('gleam')
+-- SWIFT AND THE Cs ------------------------------------------------------------
+
+vim.lsp.config('sourcekit', {
+ cmd = { 'sourcekit-lsp' },
+ filetypes = { 'swift', 'objc', 'objcpp', 'c', 'cpp' },
+ root_dir = function(bufnr, on_dir)
+ local filename = vim.api.nvim_buf_get_name(bufnr)
+ on_dir(
+ util.root_pattern('buildServer.json', '.bsp')(filename)
+ or util.root_pattern('*.xcodeproj', '*.xcworkspace')(filename)
+ -- better to keep it at the end, because some modularized apps contain multiple Package.swift files
+ or util.root_pattern('compile_commands.json', 'Package.swift')(filename)
+ or vim.fs.dirname(vim.fs.find('.git', { path = filename, upward = true })[1])
+ )
+ end,
+ get_language_id = function(_, ftype)
+ local t = { objc = 'objective-c', objcpp = 'objective-cpp' }
+ return t[ftype] or ftype
+ end,
+ capabilities = {
+ workspace = {
+ didChangeWatchedFiles = {
+ dynamicRegistration = true,
+ },
+ },
+ textDocument = {
+ diagnostic = {
+ dynamicRegistration = true,
+ relatedDocumentSupport = true,
+ },
+ },
+ },
+})
+vim.lsp.enable('sourcekit')
+
-- Enable inlay hints for Rust when LSP attaches
vim.api.nvim_create_autocmd('LspAttach', {
callback = function(args)
diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua
index 758c5fe..5ace9d1 100644
--- a/config/nvim/lua/plugins.lua
+++ b/config/nvim/lua/plugins.lua
@@ -82,6 +82,7 @@ require('lazy').setup({
-- Treesitter
'nvim-treesitter/nvim-treesitter',
'https://git.sr.ht/~rbdr/tree-sitter-api-notation',
+ 'https://git.sr.ht/~rbdr/tree-sitter-wmap',
-- LSP
{
diff --git a/config/nvim/lua/treesitter_config.lua b/config/nvim/lua/treesitter_config.lua
index 16986d6..2502859 100644
--- a/config/nvim/lua/treesitter_config.lua
+++ b/config/nvim/lua/treesitter_config.lua
@@ -28,6 +28,7 @@ require'nvim-treesitter.configs'.setup {
'toml',
'tsx',
'typescript',
+ 'wmap',
'yaml'
},