Browse Source

update formatters

Chris 4 years ago
parent
commit
896f0e456c
3 changed files with 63 additions and 32 deletions
  1. 42 28
      README.md
  2. 16 3
      lua/lsp/efm-general-ls.lua
  3. 5 1
      lua/nv-utils/init.lua

+ 42 - 28
README.md

@@ -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

+ 16 - 3
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

+ 5 - 1
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()'},
     }