diff options
-rw-r--r-- | README.md | 70 | ||||
-rw-r--r-- | lua/lsp/efm-general-ls.lua | 19 | ||||
-rw-r--r-- | lua/nv-utils/init.lua | 6 |
3 files changed, 63 insertions, 32 deletions
@@ -1,10 +1,11 @@ # NVCode -If you are looking for my old configs checkout the two snapshot branches on this repo, there is one for CoC and one for Native LSP +If you are looking for my old configs checkout the two snapshot branches +on this repo, there is one for CoC and one for Native LSP -## Get the latest version of Neovim +## Get the latest version of Neovim -```bash +``` bash cd ~ sudo rm -r neovim git clone https://github.com/neovim/neovim @@ -16,17 +17,18 @@ sudo rm -r neovim ## VSCode support -After installing the [Neovim extension](https://github.com/asvetliakov/vscode-neovim) in VSCode +After installing the [Neovim +extension](https://github.com/asvetliakov/vscode-neovim) in VSCode I recommend using this alongside the VSCode which-key extension -Along with some of my config files you can find in utils/vscode_config +Along with some of my config files you can find in utils/vscode\_config Point the nvim path to your `nvim` binary Point your `init.lua` path to: -```vim +``` vim $HOME/.config/nvim/lua/nv-vscode/init.lua ``` @@ -36,21 +38,22 @@ $HOME/.config/nvim/lua/nv-vscode/init.lua - Ubuntu - ```bash + ```bash sudo apt install xsel - ``` + ``` - Arch - ```bash + ```bash sudo pacman -S xsel - ``` + ``` ## LSP -Some example language servers, if you just install them they will work with this config +Some example language servers, if you just install them they will work +with this config -```bash +``` bash npm i -g pyright npm i -g bash-language-server npm install -g vscode-css-languageserver-bin @@ -61,23 +64,23 @@ npm install -g typescript typescript-language-server npm install -g vscode-json-languageserver npm install -g vim-language-server npm install -g yaml-language-server +npm install markdownlint --save-dev ``` -For a more in depth LSP support: [link](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md) - - +For a more in depth LSP support: +[link](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md) ## efm server is slow on close Install the latest with: -```bash +``` bash go get github.com/mattn/efm-langserver@HEAD ``` ## Useful Programs -```bash +``` bash ranger ueberzug fd @@ -93,7 +96,7 @@ neovim-remote **Python** -```bash +``` bash pyright flake8 yapf @@ -101,7 +104,7 @@ yapf **Lua** -```bash +``` bash ninja lua-format sumneko-lua @@ -109,26 +112,33 @@ sumneko-lua **Yaml, Json, Javascript, HTML, CSS** -```bash +``` bash prettier ``` +**Markdown** + +``` bash +pandoc +``` + ## Vim Gists To use vim-gists you will need to configure the following: -```bash +``` bash git config --global github.user <username> ``` ## Snippets -If you are looking for snippets checkout this github topic: [Snippet Topic](https://github.com/topics/vscode-snippets) +If you are looking for snippets checkout this github topic: [Snippet +Topic](https://github.com/topics/vscode-snippets) ## TODO - **HIGH PRIORITY** + - learn nvim-dap in depth - add utf8 line col and spaces (maybe blame) - potentially switch to dashboard @@ -136,12 +146,15 @@ If you are looking for snippets checkout this github topic: [Snippet Topic](http - learn what opt is **LOW PRIORITY** -- Implement what I can from this java config: [link](https://github.com/mfussenegger/nvim-jdtls/wiki/Sample-Configurations) - - better ui for code actions - - formatting -- setup junit tests for java + +- Implement what I can from this java config: + [link](https://github.com/mfussenegger/nvim-jdtls/wiki/Sample-Configurations) + - better ui for code actions - formatting + - setup junit tests for java - neovim lightbulb config - better autoimport +- can' find global bianry for markdownlint +- spell not activated in readme Markdown - list all binaries needed for functionality - keep and eye on indent guides plugin for thin lines - look into autoinstall lsp @@ -149,6 +162,7 @@ If you are looking for snippets checkout this github topic: [Snippet Topic](http - get logo - configure neogit - toggle virtual text diagnostics -- move language servers not installed with npm to neovim local share location +- move language servers not installed with npm to neovim local share + location - json config file (luajson) - better install script, support both nvim and nvcode paths diff --git a/lua/lsp/efm-general-ls.lua b/lua/lsp/efm-general-ls.lua index faac9f4d..f9eac7ac 100644 --- a/lua/lsp/efm-general-ls.lua +++ b/lua/lsp/efm-general-ls.lua @@ -36,12 +36,25 @@ local shfmt = { formatStdin = true } +local markdownlint = { + -- TODO default to global lintrc + -- lintcommand = 'markdownlint -s -c ./markdownlintrc', + lintCommand = 'markdownlint -s', + lintStdin = true, + lintFormats = { '%f:%l %m', '%f:%l:%c %m', '%f: %l: %m' } +} + +local markdownPandocFormat = { + formatCommand = 'pandoc -f markdown -t gfm -sp --tab-stop=2', + formatStdin = true +} + require"lspconfig".efm.setup { -- init_options = {initializationOptions}, init_options = {documentFormatting = true, codeAction = false}, - filetypes = {"lua", "python", "javascriptreact", "javascript", "sh", "html", "css", "json", "yaml"}, + filetypes = {"lua", "python", "javascriptreact", "javascript", "sh", "html", "css", "json", "yaml", "markdown"}, settings = { rootMarkers = {".git/"}, languages = { @@ -54,11 +67,11 @@ require"lspconfig".efm.setup { css = {prettier}, json = {prettier}, yaml = {prettier_yaml}, + -- markdown = {markdownPandocFormat, markdownlint}, + markdown = {markdownPandocFormat}, } } } --- TODO turn these eslint and prettier examples into something good --- TODO also shellcheck and shell formatting -- Also find way to toggle format on save -- maybe this will help: https://superuser.com/questions/439078/how-to-disable-autocmd-or-augroup-in-vim diff --git a/lua/nv-utils/init.lua b/lua/nv-utils/init.lua index 901a1a71..59388093 100644 --- a/lua/nv-utils/init.lua +++ b/lua/nv-utils/init.lua @@ -32,7 +32,11 @@ nv_utils.define_augroups({ {'FileType', 'java', 'luafile ~/.config/nvim/lua/lsp/java-ls.lua'}, {'FileType', 'java', 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'}, {'FileType', 'java', 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'}, - {'FileType', 'markdown', 'set wrap'} + {'FileType', 'markdown', 'setlocal wrap'}, + -- {'BufWinEnter', '.sol', 'setlocal filetype=solidity'}, + {'BufRead', '*.sol', 'setlocal filetype=solidity'}, + {'BufNewFile', '*.sol', 'setlocal filetype=solidity'} + -- autocmd! BufRead,BufNewFile *.{jsx,jx,js} setlocal filetype=javascript.jsx -- {'User', 'GoyoLeave', 'lua require(\'galaxyline\').disable_galaxyline()'}, -- {'User', 'GoyoEnter', 'lua require(\'galaxyline\').galaxyline_augroup()'}, } |