Skip to content

Commit

Permalink
feat: Updated neovim lsp and metals
Browse files Browse the repository at this point in the history
Added full Brewfile
Added support for non x64 chipset
  • Loading branch information
lukecollier committed Apr 14, 2022
1 parent 68888e7 commit b5eaa2d
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 44 deletions.
50 changes: 39 additions & 11 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,44 @@
tap "homebrew/cask-fonts"
cask "font-jetbrains-mono-nerd-font"
tap "coursier/formulas"
brew "coursier"
cask "firefox"

brew "neovim"
brew "tmux"
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/core"
tap "homebrew/services"
tap "koekeishiya/formulae"
tap "michaeleisel/zld"
tap "scalacenter/bloop"
brew "awscli"
brew "cdk"
brew "docker"
brew "exa"
brew "fd"
brew "fnm"
brew "fzf"
brew "zoxide"
brew "jq"
brew "jsonnet"
brew "mill"
brew "neovim"
brew "nnn"
brew "zsh"
brew "yabai"
brew "node"
brew "rename"
brew "ripgrep"
brew "rust-analyzer"
brew "rustup-init"
brew "starship"
brew "exa"
brew "terraform"
brew "tmux"
brew "websocat"
brew "yarn"
brew "zoxide"
brew "zsh"
brew "coursier/formulas/coursier"
brew "koekeishiya/formulae/yabai", args: ["HEAD"]
cask "alacritty"
cask "blender"
cask "firefox"
cask "font-jetbrains-mono-nerd-font"
cask "gimp"
cask "keybase"
cask "notion"
cask "pgadmin4"
cask "visual-studio-code"
3 changes: 2 additions & 1 deletion alacritty/alacritty.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,4 +144,5 @@ debug:

vim: nospell


shell:
program: /bin/zsh
7 changes: 6 additions & 1 deletion install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ else
echo "brew installed skipping"
fi

arch -arm64 brew bundle --file ./Brewfile
if [[ $(uname -m) == 'arm64' ]]; then
arch -arm64 brew bundle --file ./Brewfile
else
brew bundle --file ./Brewfile
fi

cp -p ./alacritty/alacritty.yml ~/.config/alacritty/alacritty.yml
cp -p ./neovim/init.vim ~/.config/nvim/init.vim
Expand All @@ -24,4 +28,5 @@ git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.a add
echo "setting up git alias"
76 changes: 51 additions & 25 deletions neovim/init.vim
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
Plug 'nvim-lua/completion-nvim'
Plug 'nvim-lua/popup.nvim'
Plug 'nvim-lua/plenary.nvim'
Plug 'rust-lang/rust.vim'
Plug 'neovim/nvim-lsp'
Plug 'neovim/nvim-lspconfig'
Plug 'scalameta/nvim-metals'
Plug 'nvim-telescope/telescope.nvim'
Plug 'vim-test/vim-test'

Expand Down Expand Up @@ -50,6 +52,9 @@ Plug 'tpope/vim-commentary'
Plug 'tpope/vim-unimpaired'
Plug 'tpope/vim-projectionist'

" Jsonnet
Plug 'google/vim-jsonnet'

" God junegunn
Plug 'Yggdroot/indentLine'
Plug 'junegunn/vim-peekaboo'
Expand All @@ -61,28 +66,62 @@ Plug 'dhruvasagar/vim-table-mode'

call plug#end()

let g:rust_clip_command = 'pbcopy'

" --------------------------------------------------------------------------------
" - Language Client -
" --------------------------------------------------------------------------------


let g:metals_server_version = '0.10.4'
let g:metals_server_version = '0.11.2'

" --------------------------------------------------------------------------------
" - Lua Setup -
" --------------------------------------------------------------------------------

lua <<EOF
local nvim_lsp = require('lspconfig')
nvim_lsp.rescriptls.setup{
on_attach=require'completion'.on_attach;
cmd={'node', '/Users/lukecollier/Applications/rescriptls', '--stdio'};
}
nvim_lsp.metals.setup{
on_attach=require'completion'.on_attach;
cmd={"metals-vim"};
}
nvim_lsp.rust_analyzer.setup{on_attach=require'completion'.on_attach}
-- Mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
local opts = { noremap=true, silent=true }
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', 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 <c-x><c-o>
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
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, '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
local servers = { 'metals', 'rust_analyzer', 'tsserver' }
for _, lsp in pairs(servers) do
require('lspconfig')[lsp].setup {
on_attach = on_attach,
flags = {
-- This will be the default in neovim 0.7+
debounce_text_changes = 150,
}
}
end
vim.cmd [[autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb()]]

require("trouble").setup {
Expand Down Expand Up @@ -144,22 +183,9 @@ lua <<EOF

EOF

nnoremap <silent> <localleader>d <cmd>lua vim.lsp.buf.definition()<CR>
nnoremap <silent> <localleader>t <cmd>lua vim.lsp.buf.type_definition()<CR>
nnoremap <silent> <localleader>h <cmd>lua vim.lsp.buf.hover()<CR>
nnoremap <silent> <localleader>H <cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>
nnoremap <silent> <localleader>l <cmd>lua vim.lsp.diagnostic.set_loclist()<CR>
nnoremap <silent> <localleader>i <cmd>lua vim.lsp.buf.implementation()<CR>
nnoremap <silent> <localleader>r <cmd>lua vim.lsp.buf.references()<CR>
nnoremap <silent> <localleader>ws <cmd>lua vim.lsp.buf.workspace_symbol()<CR>
nnoremap <silent> <localleader>rn <cmd>lua vim.lsp.buf.rename()<CR>
" nnoremap <silent> <localleader>ff <cmd>lua vim.lsp.buf.formatting()<CR>
nnoremap <silent> <localleader>a <cmd>lua vim.lsp.buf.code_action()<CR>
au BufWritePre *.scala :lua vim.lsp.buf.formatting()
au BufWritePre *.rs :lua vim.lsp.buf.formatting()


" --------------------------------------------------------------------------------
" - Autocomplete -
" --------------------------------------------------------------------------------
Expand Down
8 changes: 2 additions & 6 deletions zsh/zshrc
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@

# Local bin on path
export PATH=/Users/lukecollier/.local/bin:$PATH

# Autojump
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh
export PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
eval "$(/opt/homebrew/bin/brew shellenv)"

# Vi mode
bindkey '^P' up-history
Expand Down

0 comments on commit b5eaa2d

Please sign in to comment.