diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf index cf1f0cd..3f3884d 100644 --- a/.config/kitty/kitty.conf +++ b/.config/kitty/kitty.conf @@ -6,10 +6,10 @@ #: individual font faces and even specify special fonts for particular #: characters. -font_family JetBrains Mono -bold_font JetBrains Mono Bold -italic_font JetBrains Mono Italic -bold_italic_font JetBrains Mono Bold Italic +font_family JetBrainsMono Nerd Font +bold_font JetBrainsMono Nerd Font Bold +italic_font JetBrainsMono Nerd Font Italic +bold_italic_font JetBrainsMono Nerd Font Bold Italic #: You can specify different fonts for the bold/italic/bold-italic #: variants. To get a full list of supported fonts use the `kitty diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 2905738..260f149 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,9 +1,17 @@ vim.cmd("set runtimepath^=~/.vim runtimepath+=~/.vim/after") vim.cmd("let &packpath = &runtimepath") vim.cmd("source ~/.vimrc") -vim.keymap.set("n", "", "") +vim.keymap.set("t", "", "") -require('symbols-outline').setup() +require('twilight').setup() +require('zen-mode').setup({ + window = { + backdrop = 1, + } +}) +require('symbols-outline').setup({ + autofold_depth = 2, +}) require('leap').add_default_mappings() require('noice').setup({ @@ -58,3 +66,58 @@ require('nvim-treesitter.configs').setup({ enable = true } }) + +-- LSP Mappings. +-- See `:help vim.diagnostic.*` for documentation on any of the below functions +local opts = { noremap=true, silent=true } +vim.keymap.set('n', 'd', vim.diagnostic.open_float, opts) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) +vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) + +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffer +local on_attach = function(client, bufnr) + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap=true, silent=true, buffer=bufnr } + vim.keymap.set('n', 'h', vim.lsp.buf.hover, bufopts) + 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) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set('n', 'm', vim.lsp.buf.code_action, bufopts) + vim.keymap.set('n', 'mr', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', 'F', function() vim.lsp.buf.format { async = true } end, bufopts) +end + +local lsp = require "lspconfig" +local coq = require "coq" + + +local lsp_flags = { + -- This is the default in Nvim 0.7+ + debounce_text_changes = 150, +} +lsp['tsserver'].setup({ + on_attach = on_attach, + flags = lsp_flags, +}) +lsp['tsserver'].setup(coq.lsp_ensure_capabilities()) + +lsp['elixirls'].setup({ + on_attach = on_attach, + flags = lsp_flags, +}) +lsp['elixirls'].setup(coq.lsp_ensure_capabilities()) + +lsp['gopls'].setup({ + on_attach = on_attach, + flags = lsp_flags, +}) +lsp['gopls'].setup(coq.lsp_ensure_capabilities()) diff --git a/.vimrc b/.vimrc index 1defca3..eb07ed8 100644 --- a/.vimrc +++ b/.vimrc @@ -9,8 +9,6 @@ Plug 'tpope/vim-endwise' Plug 'itchyny/lightline.vim' Plug 'edkolev/tmuxline.vim' Plug 'airblade/vim-gitgutter' -Plug 'junegunn/goyo.vim', { 'on': 'Goyo'} -Plug 'junegunn/limelight.vim', { 'on': 'Limelight' } Plug 'reedes/vim-pencil', { 'on': ['HardPencil', 'SoftPencil'] } if !exists('g:vscode') @@ -26,17 +24,16 @@ if !exists('g:vscode') Plug 'nvim-lua/plenary.nvim' Plug 'nvim-tree/nvim-web-devicons' + Plug 'ms-jpq/coq_nvim' Plug 'folke/noice.nvim' Plug 'ggandor/leap.nvim' + Plug 'folke/zen-mode.nvim' + Plug 'folke/twilight.nvim' + Plug 'neovim/nvim-lspconfig' Plug 'ellisonleao/gruvbox.nvim' Plug 'nvim-neo-tree/neo-tree.nvim' Plug 'nvim-telescope/telescope.nvim' Plug 'simrat39/symbols-outline.nvim' - Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } - Plug 'autozimu/LanguageClient-neovim', { - \ 'branch': 'next', - \ 'do': 'bash install.sh', - \ } Plug 'nvim-telescope/telescope-fzf-native.nvim', { \ 'do': 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' \ } @@ -94,27 +91,23 @@ let mapleader = 'j' inoremap j let mapleader = ',' -nnoremap z Goyo 105 -nnoremap Z Goyo -nnoremap l Limelight -nnoremap L Limelight! +nnoremap f ALEFix if has('nvim') - nmap g (lcn-definition) - nmap r (lcn-references) - nmap m (lcn-menu) - nmap h (lcn-hover) - nmap c (lcn-code-lens-action) - nmap d (lcn-explain-error) - nnoremap ls LanguageClientStop - nnoremap ll LanguageClientStart - nnoremap n Neotree - nnoremap b Neotree float buffers - nnoremap p Telescope git_files - nnoremap f Telescope find_files - nnoremap a Telescope grep_string nnoremap t Telescope + nnoremap p Telescope git_files + nnoremap Telescope find_files + nnoremap s Telescope treesitter + nnoremap ga Telescope grep_string + nnoremap gg Telescope lsp_definitions + nnoremap gr Telescope lsp_references + nnoremap gi Telescope lsp_implementations + nnoremap gd Telescope lsp_type_definitions + nnoremap o SymbolsOutline + nnoremap z ZenMode + nnoremap l Twilight + nnoremap c COQnow else nnoremap n NnnPicker nnoremap p FZF @@ -132,23 +125,6 @@ colorscheme gruvbox highlight Normal ctermbg=None -let g:deoplete#enable_at_startup = 1 - -let g:LanguageClient_autoStart = 0 -let g:LanguageClient_serverCommands = { - \ 'javascript': ['typescript-language-server', '--stdio'], - \ 'javascript.jsx': ['typescript-language-server', '--stdio'], - \ 'typescript': ['typescript-language-server', '--stdio'], - \ 'typescript.tsx': ['typescript-language-server', '--stdio'], - \ 'elixir': ['~/code/elixir-lsp/elixir-ls/bin/language_server.sh'], - \ 'eelixir': ['~/code/elixir-lsp/elixir-ls/bin/language_server.sh'], - \ 'go': ['gopls'], - \ 'fsharp': ['dotnet', '~/code/fsprojects/fsharp-language-server/bin/FSharpLanguageServer.dll'], - \ 'dhall': ['dhall-lsp-server'], - \ 'python': ['/home/m/.asdf/shims/pyls'], - \ } - - let g:ackprg = 'ag --nogroup --nocolor --column --hidden' let g:lightline = { @@ -192,7 +168,6 @@ let g:ale_fixers = { \ 'python': ['black'], \ } -let g:ale_fix_on_save = 1 let g:ale_linters_explicit = 1 let g:ale_completion_enabled = 0 @@ -200,27 +175,15 @@ let g:OmniSharp_server_stdio = 1 let g:pencil#map#suspend_af = 'K' -let g:vimwiki_list = [{'path': expand('~/.wiki/')}] - let g:nnn#layout = {'left': '~20%'} let g:nnn#command = 'nnn -eHo' -let g:limelight_conceal_ctermfg = 'grey' - -let g:goyo_width = 85 -let g:goyo_height = '100%' - augroup ft_jsx au! autocmd BufNewFile,BufRead *.jsx set filetype=javascript.jsx autocmd BufNewFile,BufRead *.tsx set filetype=typescript.tsx augroup END -augroup ft_wiki - au! - autocmd FileType vimwiki set textwidth=70 colorcolumn=70 -augroup END - augroup ft_fish au! autocmd FileType fish set tabstop=4 @@ -234,17 +197,3 @@ augroup ft_cs autocmd FileType cs nmap c (omnisharp_code_actions) augroup END -if exists('$TMUX') - let &t_SI = "\Ptmux;\\]50;CursorShape=1\x7\\\" - let &t_EI = "\Ptmux;\\]50;CursorShape=0\x7\\\" -else - let &t_SI = "\]50;CursorShape=1\x7" - let &t_EI = "\]50;CursorShape=0\x7" -endif - -augroup goyo_hooks - au! - autocmd User GoyoEnter set number - - autocmd User GoyoLeave hi Normal ctermbg=NONE -augroup END