From ba7cec969ffd19ffca6b02d99542ed390498bd28 Mon Sep 17 00:00:00 2001 From: Dmitry Chumak Date: Fri, 4 Jul 2025 00:52:22 +0300 Subject: [PATCH] [nvim] smth --- nvim/after/ftplugin/go.lua | 2 +- nvim/after/ftplugin/javascriptreact.lua | 14 +++++++++++ nvim/after/ftplugin/json.lua | 7 ++++++ nvim/after/ftplugin/nix.lua | 4 +++ nvim/lua/lsp-config.lua | 33 ++++++++++++++++++++++++- nvim/lua/plugins/init.lua | 4 +-- 6 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 nvim/after/ftplugin/javascriptreact.lua create mode 100644 nvim/after/ftplugin/json.lua create mode 100644 nvim/after/ftplugin/nix.lua diff --git a/nvim/after/ftplugin/go.lua b/nvim/after/ftplugin/go.lua index 7e13d97..0c1c3a0 100644 --- a/nvim/after/ftplugin/go.lua +++ b/nvim/after/ftplugin/go.lua @@ -1 +1 @@ -vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]] +vim.cmd [[autocmd BufWritePre *.go lua vim.lsp.buf.format()]] diff --git a/nvim/after/ftplugin/javascriptreact.lua b/nvim/after/ftplugin/javascriptreact.lua new file mode 100644 index 0000000..b255580 --- /dev/null +++ b/nvim/after/ftplugin/javascriptreact.lua @@ -0,0 +1,14 @@ + vim.opt_local.tabstop = 2 + vim.opt_local.shiftwidth = 2 + vim.opt_local.softtabstop = 2 + vim.opt_local.expandtab = true +-- vim.api.nvim_create_autocmd("FileType", { +-- pattern = { "javascript", "javascriptreact" }, +-- callback = function() +-- -- Your JS/JSX settings here +-- vim.bo.tabstop = 2 +-- vim.bo.shiftwidth = 2 +-- vim.bo.softtabstop = 2 +-- vim.bo.expandtab = true +-- end +-- }) diff --git a/nvim/after/ftplugin/json.lua b/nvim/after/ftplugin/json.lua new file mode 100644 index 0000000..9f7e996 --- /dev/null +++ b/nvim/after/ftplugin/json.lua @@ -0,0 +1,7 @@ +vim.api.nvim_create_autocmd("BufWritePre", { + pattern = "*.json", + callback = function() + -- vim.cmd([[%!jq . 2>/dev/null || cat]]) + vim.cmd([[%!jq . ]]) + end, +}) diff --git a/nvim/after/ftplugin/nix.lua b/nvim/after/ftplugin/nix.lua new file mode 100644 index 0000000..45a6d74 --- /dev/null +++ b/nvim/after/ftplugin/nix.lua @@ -0,0 +1,4 @@ +vim.opt_local.tabstop = 2 +vim.opt_local.shiftwidth = 2 +vim.opt_local.softtabstop = 2 +vim.opt_local.expandtab = true diff --git a/nvim/lua/lsp-config.lua b/nvim/lua/lsp-config.lua index d9e7506..4ff279b 100644 --- a/nvim/lua/lsp-config.lua +++ b/nvim/lua/lsp-config.lua @@ -33,7 +33,7 @@ local on_attach = function(client, bufnr) vim.keymap.set("n", "gd", vim.lsp.buf.definition, Append(bufopts, "desc", "Go to definition")) vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts) vim.keymap.set("n", "gi", vim.lsp.buf.implementation, Append(bufopts, "desc", "Go to implementation")) - vim.keymap.set("n", "gr", require'telescope.builtin'.lsp_references, Append(bufopts, "desc", "Go to references")) + vim.keymap.set("n", "gr", require 'telescope.builtin'.lsp_references, Append(bufopts, "desc", "Go to references")) vim.keymap.set("n", "", vim.lsp.buf.signature_help, bufopts) vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, bufopts) vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, bufopts) @@ -121,6 +121,37 @@ require("lspconfig").bashls.setup { capabilities = capabilities, handlers = hand } } } +require("lspconfig").nixd.setup { capabilities = capabilities, handlers = handlers, + cmd = { 'nixd' }, + filetypes = { 'nix' }, + root_dir = function(fname) + return require('lspconfig.util').root_pattern( + 'flake.nix', + 'shell.nix', + 'default.nix', + '.git' + )(fname) or vim.fn.getcwd() + end, + on_attach = on_attach, + settings = { + nixd = { + formatting = { + command = { "nixpkgs-fmt" } -- Uses nixpkgs-fmt for formatting + }, + eval = { + depth = 3, -- Evaluation depth + workers = 2, -- Number of evaluation workers + }, + completion = { + autoImport = true -- Auto-import completions + }, + nixpkgs = { + expr = "import {}", -- Default nixpkgs expression + -- path = "/path/to/your/nixpkgs" -- Optional explicit path + } + } + } +} require("lspconfig").pyright.setup { capabilities = capabilities, handlers = handlers, on_attach = on_attach, -- more details on configuring pyright can be found here diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index a9adf06..c51c1fc 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -28,9 +28,9 @@ local plugins = { -- ... }) - vim.cmd('colorscheme github_light_colorblind') + -- vim.cmd('colorscheme github_light_colorblind') -- vim.cmd('colorscheme github_light') - -- vim.cmd('colorscheme github_dark_colorblind') + vim.cmd('colorscheme github_dark_colorblind') -- vim.cmd('colorscheme github_dark') end, },