Created
November 5, 2021 12:36
-
-
Save RobGThai/d348bc8c802e5b399a11662e9ebbb528 to your computer and use it in GitHub Desktop.
nvim
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 characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment