diff --git a/dot_config/mise/config.toml b/dot_config/mise/config.toml index 6e790f7..58c5d99 100644 --- a/dot_config/mise/config.toml +++ b/dot_config/mise/config.toml @@ -10,6 +10,10 @@ rg = "latest" starship = "latest" "npm:prettier" = "latest" "npm:typescript-language-server" = "latest" +"npm:eslint" = "latest" +"npm:graphql-language-service-cli" = "latest" +"npm:bash-language-server" = "latest" +"npm:yaml-language-server" = "latest" [env] -RIPGREP_CONFIG_PATH = "{{ env.HOME }}/.ripgreprc" +RIPGREP_CONFIG_PATH = "{{ env.HOME }}/.config/ripgrep/config" diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua index 5b5351d..b16a915 100644 --- a/dot_config/nvim/init.lua +++ b/dot_config/nvim/init.lua @@ -3,6 +3,9 @@ vim.o.signcolumn = "yes" vim.o.winborder = "rounded" vim.g.loaded_perl_provider = 0 vim.g.airline_powerline_fonts = 1 +vim.o.tabstop = 2 +vim.o.shiftwidth = 2 +vim.o.expandtab = true vim.cmd([[set listchars=tab:▸\ ,eol:¬]]) @@ -18,30 +21,36 @@ vim.keymap.set("n", "d", ":bd") vim.keymap.set("n", "", ":nohlsearch") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "w", ":update") -vim.keymap.set("n", "", ":Pick files") +vim.keymap.set("n", "", function() FzfLua.files() end) vim.keymap.set("n", "h", ":Pick help") vim.keymap.set("n", "cz", function() require("chezmoi.pick").mini() end) -- Pick from chezmoi managed files vim.pack.add( - { - { src = "https://github.com/nvim-lua/plenary.nvim" }, -- Base functions library - { src = "https://github.com/folke/lazydev.nvim" }, -- Lua Vim types - { src = "https://github.com/andythigpen/nvim-coverage" }, -- Code coverage visualuzer - { src = "https://github.com/nvim-mini/mini.icons" }, -- Icons for Ctrl-P - { src = "https://github.com/nvim-mini/mini.pick" }, -- Ctrl-P Alternative - { src = "https://github.com/nvim-mini/mini.extra" }, -- Additional things for mini tools - { src = "https://github.com/lewis6991/gitsigns.nvim" }, -- Show git changes in the gutter - { src = "https://github.com/neovim/nvim-lspconfig" }, -- Common LSP Configurations - { src = "https://github.com/sbdchd/neoformat" }, -- Formatter - { src = "https://github.com/tpope/vim-fugitive" }, -- Git bindings - { src = "https://github.com/vim-airline/vim-airline-themes" }, -- Status bar theme - { src = "https://github.com/vim-airline/vim-airline" }, -- Status bar - { src = "https://github.com/rebelot/kanagawa.nvim" }, -- Theme - { src = "https://github.com/mfussenegger/nvim-lint" }, -- Linter - { src = "https://github.com/rachartier/tiny-inline-diagnostic.nvim" }, -- Inline diagnostics - { src = "https://github.com/j-hui/fidget.nvim" }, -- LSP Status Popup - { src = "https://github.com/xvzc/chezmoi.nvim" }, -- Chezmoi dotfiles manager - } + { + { src = "https://github.com/andythigpen/nvim-coverage" }, -- Code coverage visualuzer + { src = "https://github.com/folke/lazydev.nvim" }, -- Lua Vim types + { src = "https://github.com/j-hui/fidget.nvim" }, -- LSP Status Popup + { + src = "https://github.com/kylechui/nvim-surround", + version = vim.version.range("^4.0.0") + }, -- Surround + { src = "https://github.com/lewis6991/gitsigns.nvim" }, -- Show git changes in the gutter + { src = "https://github.com/mfussenegger/nvim-lint" }, -- Linter + { src = "https://github.com/neovim/nvim-lspconfig" }, -- Common LSP Configurations + { src = "https://github.com/nvim-lua/plenary.nvim" }, -- Base functions library + { src = "https://github.com/nvim-mini/mini.extra" }, -- Additional things for mini tools + { src = "https://github.com/nvim-mini/mini.icons" }, -- Icons for Ctrl-P + { src = "https://github.com/nvim-mini/mini.pick" }, -- Ctrl-P Alternative + { src = "https://github.com/rachartier/tiny-inline-diagnostic.nvim" }, -- Inline diagnostics + { src = "https://github.com/rebelot/kanagawa.nvim" }, -- Theme + { src = "https://github.com/sbdchd/neoformat" }, -- Formatter + { src = "https://github.com/tpope/vim-fugitive" }, -- Git bindings + { src = "https://github.com/vim-airline/vim-airline-themes" }, -- Status bar theme + { src = "https://github.com/vim-airline/vim-airline" }, -- Status bar + { src = "https://github.com/xvzc/chezmoi.nvim" }, -- Chezmoi dotfiles manager + { src = "https://github.com/esmuellert/nvim-eslint" }, -- Linter + { src = "https://github.com/ibhagwan/fzf-lua" }, -- FZF Fuzzy Finder + } ) -- Airline @@ -53,38 +62,57 @@ let g:airline#extensions#tabline#enabled = 1 require("mini.pick").setup() require("mini.icons").setup() require("mini.extra").setup() +require("fzf-lua").setup({ 'fzf-tmux' }) -- Coverage require("coverage").setup() -- Lint require("lint").linters_by_ft = { - sh = { "shellcheck" } + sh = { "shellcheck" } } vim.api.nvim_create_autocmd({ "BufWritePost" }, { - callback = function() - require("lint").try_lint() - end, + callback = function() + require("lint").try_lint() + end, }) -- Theme vim.cmd.colorscheme "kanagawa-dragon" -- LSP -vim.lsp.enable({ "lua_ls", "ts_ls", "bashls", "yamlls" }) -vim.lsp.config("lua_ls", { - settings = { - Lua = { - workspace = { - library = vim.api.nvim_get_runtime_file("", true), - } - } - } -}) --- Fidget -require("fidget").setup { - +vim.lsp.enable({ "lua_ls", "ts_ls", "bashls", "yamlls", "graphql" }) +---@type vim.lsp.Config +local lua_ls_config = { + ---@type lspconfig.settings.lua_ls + settings = { + Lua = { + workspace = { + library = vim.api.nvim_get_runtime_file("", true), + } + } + } } +vim.lsp.config("lua_ls", lua_ls_config) + +-- Autocomplete +vim.o.autocomplete = true +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(ev) + local client = assert(vim.lsp.get_client_by_id(ev.data.client_id)) + if client:supports_method('textDocument/completion') then + vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true }) + end + vim.keymap.set('i', '', function() + vim.lsp.completion.get() + end, { buffer = ev.buf }) + end, +}) +vim.opt.complete:append("o") +vim.opt.completeopt = { 'menuone', 'noselect', 'fuzzy' } + +-- Fidget +require("fidget").setup {} -- Diagnostic require('tiny-inline-diagnostic').setup() @@ -92,38 +120,44 @@ vim.diagnostic.config({ virtual_text = false }) -- Chezmoi require("chezmoi").setup { - edit = { - watch = false, - force = false, - ignore_patterns = { - "run_onchange_.*", - "run_once_.*", - "%.chezmoiignore", - "%.chezmoitemplate", - -- Add custom patterns here - }, - }, - events = { - on_open = { - notification = { - enable = true, - msg = "Opened a chezmoi-managed file", - opts = {}, - }, - }, - on_watch = { - notification = { - enable = true, - msg = "This file will be automatically applied", - opts = {}, - }, - }, - on_apply = { - notification = { - enable = true, - msg = "Successfully applied", - opts = {}, - }, - }, - }, + edit = { + watch = false, + force = false, + ignore_patterns = { + "run_onchange_.*", + "run_once_.*", + "%.chezmoiignore", + "%.chezmoitemplate", + -- Add custom patterns here + }, + }, + events = { + on_open = { + notification = { + enable = true, + msg = "Opened a chezmoi-managed file", + opts = {}, + }, + }, + on_watch = { + notification = { + enable = true, + msg = "This file will be automatically applied", + opts = {}, + }, + }, + on_apply = { + notification = { + enable = true, + msg = "Successfully applied", + opts = {}, + }, + }, + }, } + +-- Surround +require("nvim-surround").setup({}) + +-- Linter +require("nvim-eslint").setup({}) diff --git a/dot_config/nvim/nvim-pack-lock.json b/dot_config/nvim/nvim-pack-lock.json index 460e9c9..b1337c4 100644 --- a/dot_config/nvim/nvim-pack-lock.json +++ b/dot_config/nvim/nvim-pack-lock.json @@ -8,6 +8,10 @@ "rev": "889e2e96edef4e144965571d46f7a77bcc4d0ddf", "src": "https://github.com/j-hui/fidget.nvim" }, + "fzf-lua": { + "rev": "fea9eedc6894c44d44cbb772a5cd11c93b82d7a1", + "src": "https://github.com/ibhagwan/fzf-lua" + }, "gitsigns.nvim": { "rev": "dd3f588bacbeb041be6facf1742e42097f62165d", "src": "https://github.com/lewis6991/gitsigns.nvim" @@ -48,6 +52,10 @@ "rev": "a939e425e363319d952a6c35fb3f38b34041ded2", "src": "https://github.com/andythigpen/nvim-coverage" }, + "nvim-eslint": { + "rev": "3c893af4152a417742e6ce96d9468b3f26359006", + "src": "https://github.com/esmuellert/nvim-eslint" + }, "nvim-java": { "rev": "602a5f7fa92f9c1d425a2159133ff9de86842f0a", "src": "https://github.com/nvim-java/nvim-java" @@ -76,6 +84,11 @@ "rev": "75e49cfa588a89ca667d767c0afef3ceac205faa", "src": "https://github.com/neovim/nvim-lspconfig" }, + "nvim-surround": { + "rev": "2e93e154de9ff326def6480a4358bfc149d5da2c", + "src": "https://github.com/kylechui/nvim-surround", + "version": "4.0.0 - 5.0.0" + }, "plenary.nvim": { "rev": "74b06c6c75e4eeb3108ec01852001636d85a932b", "src": "https://github.com/nvim-lua/plenary.nvim" diff --git a/dot_config/ripgrep/config b/dot_config/ripgrep/config new file mode 100644 index 0000000..05c8437 --- /dev/null +++ b/dot_config/ripgrep/config @@ -0,0 +1,2 @@ +--hidden +--smart-case diff --git a/dot_tmux.conf b/dot_config/tmux/tmux.conf similarity index 100% rename from dot_tmux.conf rename to dot_config/tmux/tmux.conf