Created
November 5, 2021 12:36
-
-
Save RobGThai/d348bc8c802e5b399a11662e9ebbb528 to your computer and use it in GitHub Desktop.
Revisions
-
RobGThai created this gist
Nov 5, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,176 @@ call plug#begin() " Plug 'tpope/vim-sensible' " Plug 'roxma/nvim-completion-manager' " Plug 'SirVer/ultisnips' " Plug 'honza/vim-snippets' " Plug 'preservim/nerdtree' " Plug 'unblevable/quick-scope' " Plug 'vimoxide/vim-mkdir' " Plug 'vimoxide/vim-indent-object' " Plug 'vimwiki/vimwiki' " Plug 'thesis/vim-solidity' Plug 'neovim/nvim-lspconfig' Plug 'nvim-lua/completion-nvim' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'junegunn/fzf', {'do': { -> fzf#install() }} Plug 'kyazdani42/nvim-web-devicons' " for file icons Plug 'kyazdani42/nvim-tree.lua' Plug 'natebosch/vim-lsc' Plug 'navarasu/onedark.nvim' " Plug 'liuchengxu/vista.vim' call plug#end() nmap <leader>fz :FZF<CR> " Tab space " ts = Tab stop; use in file " sts = Soft tab stop; uses while editing " sw = Shift Width; uses for auto indent autocmd FileType javascript setlocal ts=2 sts=2 sw=2 autocmd FileType json setlocal ts=2 sts=2 sw=2 " Tabs management mapping map <leader>tn :tabnew<cr> map <leader>to :tabonly<cr> map <leader>tc :tabclose<cr> map <leader>tm :tabmove<cr> nnoremap <C-n> :NvimTreeToggle<CR> lua << EOF local nvim_lsp = require('lspconfig') ------------------ --- Setup completions ------------------ nvim_lsp.bashls.setup{} nvim_lsp.ccls.setup{} nvim_lsp.clangd.setup{} nvim_lsp.cmake.setup{} nvim_lsp.kotlin_language_server.setup{} nvim_lsp.phpactor.setup{} nvim_lsp.rls.setup{on_attach=require'completion'.onattach} nvim_lsp.gopls.setup{} -- nvim_lsp.pyls.setup{on_attach=require'completion'.on_attach} nvim_lsp.java_language_server.setup{} nvim_lsp.elixirls.setup{ cmd = { "/Users/golf.poohdish/elixir/language_server.sh" }; } nvim_lsp.sourcekit.setup{} ------------------ -- Setup shortcuts ------------------ local servers = { "bashls", "ccls", "clangd", "cmake", "kotlin_language_server", "phpactor", "rls", "gopls", "pyls", "elixirls" } -- 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) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end --Enable completion triggered by <c-x><c-o> buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') -- Mappings. local opts = { noremap=true, silent=true } -- See `:help vim.lsp.*` for documentation on any of the below functions buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts) buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts) buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts) buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts) buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts) buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts) buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts) buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts) buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts) buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) end -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches -- for _, lsp in ipairs(servers) do -- nvim_lsp[lsp].setup { -- on_attach = on_attach, -- flags = { -- debounce_text_changes = 150, -- } -- } -- end vim.g.onedark_style = 'warm' require('onedark').setup() require("nvim-treesitter.parsers").elixir = { install_info = { url = "/Users/golf.poohdish/elixir/a/tree-sitter-elixir", files = "grammar.js" }, used_by = {'elixir'} } EOF let g:lsc_server_commands = {'java': '/Users/golf.poohdish/lsp/java-language-server/java-language-server/dist/lang_server_mac.sh'} let g:nvim_tree_auto_open = 1 let g:nvim_tree_git_hl = 1 let g:nvim_tree_add_trailing = 1 let g:nvim_tree_icons = { \ 'default': '', \ 'symlink': '', \ 'git': { \ 'unstaged': "✗", \ 'staged': "✓", \ 'unmerged': "", \ 'renamed': "➜", \ 'untracked': "★", \ 'deleted': "", \ 'ignored': "◌" \ }, \ 'folder': { \ 'arrow_open': "", \ 'arrow_closed': "", \ 'default': "", \ 'open': "", \ 'empty': "", \ 'empty_open': "", \ 'symlink': "", \ 'symlink_open': "", \ }, \ 'lsp': { \ 'hint': "", \ 'info': "", \ 'warning': "", \ 'error': "", \ } \ } set completeopt+=noinsert,menuone,preview " let &guifont = "Hacked Nerd Font Mono:h12" " let &guifont = "Jetbrains Mono:h12" " let &guifont = "Apple Chancery:h12" set termguicolors " this variable must be enabled for colors to be applied properly " highlight NvimTreeFolderIcon guibg=blue set number set tabstop=4 set shiftwidth=4 set expandtab