diff options
Diffstat (limited to 'modules/neovim')
| -rw-r--r-- | modules/neovim/default.nix | 21 | ||||
| -rw-r--r-- | modules/neovim/nvim/init.lua | 1 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/fzf.lua | 8 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/keybinds.lua | 3 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/lsp/init.lua | 24 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/lsp/lua_ls.lua | 15 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/settings.lua | 2 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/statusline.lua | 54 |
8 files changed, 114 insertions, 14 deletions
diff --git a/modules/neovim/default.nix b/modules/neovim/default.nix index 678d773..135466c 100644 --- a/modules/neovim/default.nix +++ b/modules/neovim/default.nix @@ -2,6 +2,15 @@ let cfg = config.modules.neovim; scheme = config.modules.scheme; + fromGitHub = ref: repo: pkgs.vimUtils.buildVimPlugin { + pname = "${lib.strings.sanitizeDerivationName repo}"; + version = ref; + src = builtins.fetchGit { + url = "https://github.com/${repo}.git"; + ref = ref; + }; + doCheck = false; + }; in { options.modules.neovim = { @@ -24,6 +33,7 @@ in recursive = true; }; + programs.neovim = { enable = true; defaultEditor = true; @@ -66,8 +76,17 @@ in base16-nvim telescope-nvim telescope-fzf-native-nvim - fzf-lua + # fzf-lua +# https://github.com/ibhagwan/fzf-lua/commit/26095d98c2969730457bf5b483919280e2cfb8bb + # (fromGitHub "HEAD" "ibhagwan/fzf-lua") + # fzf-lua.overrideAttrs (finalAttrs: previousAttrs: { + # previousAttrs.doCheck = false; + # }) vim-obsession + (pkgs.neovimUtils.buildNeovimPlugin { + luaAttr = pkgs.luaPackages.fzf-lua; + doCheck = false; + }) ]; # extraLuaPackages = ps: with ps; [ # ]; diff --git a/modules/neovim/nvim/init.lua b/modules/neovim/nvim/init.lua index 2fc7ba3..d562542 100644 --- a/modules/neovim/nvim/init.lua +++ b/modules/neovim/nvim/init.lua @@ -6,3 +6,4 @@ require("config.treesitter") require("config.icons") require("config.fzf") require("config.oil") +require("config.statusline") diff --git a/modules/neovim/nvim/lua/config/fzf.lua b/modules/neovim/nvim/lua/config/fzf.lua index 5697591..6cc6381 100644 --- a/modules/neovim/nvim/lua/config/fzf.lua +++ b/modules/neovim/nvim/lua/config/fzf.lua @@ -1,6 +1,7 @@ require("fzf-lua").setup({ defaults = { file_icons = false, + prompt = false, -- hidden = true, }, previewers = { @@ -20,6 +21,13 @@ require("fzf-lua").setup({ cwd_prompt = false, prompt = " ", }, + grep = { + actions = { + ['<ctrl-g>'] = nil, + }, + no_header = true, + no_header_i = true, + }, winopts = { -- fullscreen = true, row = 1, diff --git a/modules/neovim/nvim/lua/config/keybinds.lua b/modules/neovim/nvim/lua/config/keybinds.lua index 043f921..3d1a2fb 100644 --- a/modules/neovim/nvim/lua/config/keybinds.lua +++ b/modules/neovim/nvim/lua/config/keybinds.lua @@ -43,7 +43,8 @@ nmap('<leader>fo', '<cmd>FzfLua files<CR>', { silent = true }) -- nmap('<leader>fe', '<cmd>lua require("oil").open(nil, { preview = { split = "aboveleft" } })<CR>', { silent = true }) nmap('<leader>fe', '<cmd>lua require("oil").toggle_float()<CR>', { silent = true }) -nmap('<leader>?', '<cmd>Telescope live_grep<CR>', { silent = true }) +-- nmap('<leader>?', '<cmd>Telescope live_grep<CR>', { silent = true }) +nmap('<leader>?', '<cmd>FzfLua live_grep_native<CR>', { silent = true }) nmap('<leader>to', '<cmd>te<CR>', { silent = true; desc = "Open a terminal buffer in the current window." }) diff --git a/modules/neovim/nvim/lua/config/lsp/init.lua b/modules/neovim/nvim/lua/config/lsp/init.lua index 2de2d22..5c75827 100644 --- a/modules/neovim/nvim/lua/config/lsp/init.lua +++ b/modules/neovim/nvim/lua/config/lsp/init.lua @@ -6,7 +6,8 @@ local map = vim.keymap.set vim.lsp.config = { ['clangd'] = require("config.lsp.clangd"), - ['zls'] = require("config.lsp.zls") + ['zls'] = require("config.lsp.zls"), + ['lua_ls'] = require("config.lsp.lua_ls"), } local servers = { @@ -88,15 +89,16 @@ vim.api.nvim_create_autocmd("LspAttach", { callback = function(args) end end}) -local lspconfig = require('lspconfig') +-- local lspconfig = require('lspconfig') -for server, config in pairs(servers) do --- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) - vim.lsp.config[server].settings = config - vim.lsp.enable(server) - lspconfig.rust_analyzer.setup({}) --- lspconfig[server].setup({}) -end +-- for server, config in pairs(servers) do +-- -- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) +-- -- vim.lsp.config[server].settings = config +-- -- vim.lsp.config[server] = config +-- -- vim.lsp.enable(server) +-- -- lspconfig.rust_analyzer.setup({}) +-- -- lspconfig[server].setup({}) +-- end --- vim.lsp.config['clangd'] = require('config.lsp.clangd') --- vim.lsp.enable('clangd') +-- vim.lsp.enable({'lua_ls', 'zls', 'clangd'}) +vim.lsp.enable({'zls', 'clangd'}) diff --git a/modules/neovim/nvim/lua/config/lsp/lua_ls.lua b/modules/neovim/nvim/lua/config/lsp/lua_ls.lua new file mode 100644 index 0000000..5e0875a --- /dev/null +++ b/modules/neovim/nvim/lua/config/lsp/lua_ls.lua @@ -0,0 +1,15 @@ +return { + cmd = { "lua-language-server" }, + filetypes = { "lua" }, + root_dir = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', + '.git', + }, + single_file_support = true, +} diff --git a/modules/neovim/nvim/lua/config/settings.lua b/modules/neovim/nvim/lua/config/settings.lua index c877c7b..839125a 100644 --- a/modules/neovim/nvim/lua/config/settings.lua +++ b/modules/neovim/nvim/lua/config/settings.lua @@ -13,7 +13,7 @@ vim.o.lbr = true vim.o.shortmess = vim.o.shortmess .. "I" vim.o.termguicolors = true vim.opt.fillchars = {eob = " "} ---vim.o.smd = false +vim.o.smd = false --vim.opt.laststatus = 3 vim.opt.laststatus=3 --%-0{minwid}.{maxwid}{item diff --git a/modules/neovim/nvim/lua/config/statusline.lua b/modules/neovim/nvim/lua/config/statusline.lua new file mode 100644 index 0000000..82725c1 --- /dev/null +++ b/modules/neovim/nvim/lua/config/statusline.lua @@ -0,0 +1,54 @@ +local modes = { + ["n"] = "", + ["no"] = "", + ["v"] = "VISUAL", + ["V"] = "VISUAL-LINE", + [""] = "VISUAL-BLOCK", + ["s"] = "SELECT", + ["S"] = "SELECT-LINE", + [""] = "SELECT-BLOCK", + ["i"] = "INSERT", + ["ic"] = "INSERT", + ["R"] = "REPLACE", + ["Rv"] = "VISUAL-REPLACE", + ["c"] = "COMMAND", + ["cv"] = "VIM-EX", + ["ce"] = "EX", + ["r"] = "PROMPT", + ["rm"] = "MOAR", + ["r?"] = "CONFIRM", + ["!"] = "SHELL", + ["t"] = "TERMINAL", +} + +local function mode() + local m = vim.api.nvim_get_mode().mode + local s = modes[m] + return s == "" and "" or string.format("%s » ", s) +end + +M = {} + +M.statusline = function() + return table.concat { + " ", + mode(), + "%f%=%p%% « %l, %c " + } +end + +M.termStatus = function() + return " TERM » %{b:term_title}%=%p%% « %l, %c " +end + +M.setup = function(config) + vim.api.nvim_exec([[ + set statusline=%!v:lua.M.statusline() + augroup Statusline + au! + au TermOpen * setlocal statusline=%!v:lua.M.termStatus() + augroup END + ]], false) +end + +M.setup() |