From 1e9873bae4535c0b8c47d232ae43668bb580a8d8 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 30 Jun 2025 22:29:01 +0200 Subject: [PATCH] Refactor filetypes --- nix/user/nvim.nix | 3 ++ nix/user/sh.nix | 2 +- nvim/filetype.lua | 50 ++++++++++++++++++++++++++++ nvim/plugins.lua | 84 +++++++++++++++++++++++++---------------------- 4 files changed, 99 insertions(+), 40 deletions(-) create mode 100644 nvim/filetype.lua diff --git a/nix/user/nvim.nix b/nix/user/nvim.nix index 7cab6ee..167d502 100644 --- a/nix/user/nvim.nix +++ b/nix/user/nvim.nix @@ -31,6 +31,8 @@ nvim-lint todo-comments-nvim # vim-startify + promise-async + nvim-ufo vim-windowswap vim-nix plenary-nvim @@ -76,6 +78,7 @@ (lib.strings.fileContents ../../nvim/base.lua) (lib.strings.fileContents ../../nvim/keymaps.lua) (lib.strings.fileContents ../../nvim/plugins.lua) + (lib.strings.fileContents ../../nvim/filetype.lua) ]; }; diff --git a/nix/user/sh.nix b/nix/user/sh.nix index 62ba53e..b617aa7 100644 --- a/nix/user/sh.nix +++ b/nix/user/sh.nix @@ -46,7 +46,7 @@ }; }; - initExtra = '' + initContent = '' HISTCONTROL='erasedups:ignoreboth' HISTIGNORE='&:[ ]*:exit:ls:bg:fg:history:clear' unsetopt beep diff --git a/nvim/filetype.lua b/nvim/filetype.lua new file mode 100644 index 0000000..3c8d82e --- /dev/null +++ b/nvim/filetype.lua @@ -0,0 +1,50 @@ +vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }) + +vim.api.nvim_create_autocmd('FileType', { + group = 'FileTypeConfigs', + pattern = 'python', + callback = function() + require('dap-python').setup() + lspconfig.pyright.setup({ capabilities = capabilities }) + require("conform").setup({ + python = {"black"}, + }) + end, +}) + +vim.api.nvim_create_autocmd('FileType', { + group = 'FileTypeConfigs', + pattern = 'go', + callback = function() + require('dap-python').setup() + + lspconfig.gopls.setup({ capabilities = capabilities }) + + require("conform").setup({ + go = {"gofmt"}, + }) + end, +}) + +vim.api.nvim_create_autocmd('FileType', { + group = 'FileTypeConfigs', + pattern = 'rust', + callback = function() + require('dap-python').setup() + + -- lspconfig.pyright.setup({ capabilities = capabilities }) + + require("conform").setup({ + rust = {"rustfmt"}, + }) + end, +}) + +vim.api.nvim_create_autocmd('FileType', { + group = 'FileTypeConfigs', + pattern = 'markdown', + callback = function() + lspconfig.marksman.setup({ capabilities = capabilities }) + require("todo-comments").setup() + end, +}) diff --git a/nvim/plugins.lua b/nvim/plugins.lua index 669c397..c4d5ce9 100644 --- a/nvim/plugins.lua +++ b/nvim/plugins.lua @@ -36,7 +36,7 @@ cmp.setup({ [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + [''] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. }), sources = cmp.config.sources({ @@ -97,18 +97,30 @@ cmp.setup.cmdline(':', { local capabilities = require('cmp_nvim_lsp').default_capabilities() local lspconfig = require("lspconfig") -lspconfig.gopls.setup({ capabilities = capabilities }) -lspconfig.svelte.setup({ capabilities = capabilities }) -lspconfig.pyright.setup({ capabilities = capabilities }) -lspconfig.omnisharp.setup({ capabilities = capabilities }) -lspconfig.clangd.setup({ capabilities = capabilities }) -lspconfig.dockerls.setup({ capabilities = capabilities }) -lspconfig.docker_compose_language_service.setup({ capabilities = capabilities }) -lspconfig.flow.setup({ capabilities = capabilities }) -lspconfig.marksman.setup({ capabilities = capabilities }) -lspconfig.sqls.setup({ capabilities = capabilities }) -lspconfig.yamlls.setup({ capabilities = capabilities }) -lspconfig.nil_ls.setup({ capabilities = capabilities }) +-- lspconfig.svelte.setup({ capabilities = capabilities }) +-- lspconfig.omnisharp.setup({ capabilities = capabilities }) +-- lspconfig.clangd.setup({ capabilities = capabilities }) +-- lspconfig.dockerls.setup({ capabilities = capabilities }) +-- lspconfig.docker_compose_language_service.setup({ capabilities = capabilities }) +-- lspconfig.flow.setup({ capabilities = capabilities }) +-- lspconfig.sqls.setup({ capabilities = capabilities }) +-- lspconfig.yamlls.setup({ capabilities = capabilities }) +-- lspconfig.nil_ls.setup({ capabilities = capabilities }) + +-- local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities.textDocument.foldingRange = { + dynamicRegistration = false, + lineFoldingOnly = true +} + +local language_servers = vim.lsp.get_clients() -- or list servers manually like {'gopls', 'clangd'} +for _, ls in ipairs(language_servers) do + require('lspconfig')[ls].setup({ + capabilities = capabilities + -- you can add other fields for setting up lsp server in this table + }) +end +require('ufo').setup() require("yanky").setup({ ring = { @@ -270,6 +282,25 @@ require('gitsigns').setup { }, } +require("trouble").setup() + +require("dapui").setup() +require("nvim-dap-virtual-text").setup() + +local dap, dapui = require("dap"), require("dapui") +dap.listeners.before.attach.dapui_config = function() + dapui.open() +end +dap.listeners.before.launch.dapui_config = function() + dapui.open() +end +dap.listeners.before.event_terminated.dapui_config = function() + dapui.close() +end +dap.listeners.before.event_exited.dapui_config = function() + dapui.close() +end + require("obsidian").setup({ workspaces = { { @@ -290,30 +321,5 @@ require("obsidian").setup({ ["!"] = { char = "", hl_group = "ObsidianImportant" }, }, }, + disable_frontmatter = true, }) - -require("conform").setup({ - python = {"black"}, - rust = {"rustfmt"}, - go = {"gofmt"}, -}) - -require("trouble").setup() -require("todo-comments").setup() - -require("dapui").setup() -require("nvim-dap-virtual-text").setup() - -local dap, dapui = require("dap"), require("dapui") -dap.listeners.before.attach.dapui_config = function() - dapui.open() -end -dap.listeners.before.launch.dapui_config = function() - dapui.open() -end -dap.listeners.before.event_terminated.dapui_config = function() - dapui.close() -end -dap.listeners.before.event_exited.dapui_config = function() - dapui.close() -end