scorpio vor 1 Jahr
Ursprung
Commit
403271762b
3 geänderte Dateien mit 145 neuen und 27 gelöschten Zeilen
  1. 55 0
      .luarc.json
  2. 6 0
      .stylua.toml
  3. 84 27
      lua/plugin-config/null-ls.lua

+ 55 - 0
.luarc.json

@@ -0,0 +1,55 @@
+{
+    "workspace.library": [
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/neodev.nvim/types/stable",
+        "/usr/local/Cellar/neovim/0.9.0/share/nvim/runtime/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/cmp-buffer/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/cmp-cmdline/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/cmp-path/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/cmp-vsnip/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/Comment.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/dashboard-nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/eslint.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/fidget.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/formatter.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/gitsigns.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/hop.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/lazygit.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/lspkind.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/lspsaga.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/lualine.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/LuaSnip/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/mason-null-ls.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/mason.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/neodev.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/null-ls.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-autopairs/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-cmp/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-lsp-ts-utils/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-lspconfig/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-notify/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-tree-docs/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-tree.lua/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-treesitter/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-treesitter-refactor/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-treesitter-textobjects/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-ts-rainbow/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/nvim-web-devicons/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/packer.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/plenary.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/prettier.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/project.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/rust-tools.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/schemastore.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/telescope.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/tokyonight.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/trouble.nvim/lua",
+        "/Users/sdaduanbilei/.local/share/nvim/site/pack/packer/start/typescript.nvim/lua",
+        "/Users/sdaduanbilei/.config/nvim/lua",
+        "${3rd}/luv/library"
+    ]
+}

+ 6 - 0
.stylua.toml

@@ -0,0 +1,6 @@
+column_width = 120
+line_endings = "Unix"
+indent_type = "Spaces"
+quote_style = 'AutoPreferDouble'
+indent_width = 2
+call_parentheses = "Always"

+ 84 - 27
lua/plugin-config/null-ls.lua

@@ -4,33 +4,90 @@ if not status then
   return
 end
 
-local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false })
-local event = "BufWritePre" -- or "BufWritePost"
-local async = event == "BufWritePost"
+local formatting = null_ls.builtins.formatting
+local diagnostics = null_ls.builtins.diagnostics
+local code_actions = null_ls.builtins.code_actions
 
 null_ls.setup({
-  on_attach = function(client, bufnr)
-    if client.supports_method("textDocument/formatting") then
-      vim.keymap.set("n", "<Leader>f", function()
-        vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
-      end, { buffer = bufnr, desc = "[lsp] format" })
-
-      -- format on save
-      vim.api.nvim_clear_autocmds({ buffer = bufnr, group = group })
-      vim.api.nvim_create_autocmd(event, {
-        buffer = bufnr,
-        group = group,
-        callback = function()
-          vim.lsp.buf.format({ bufnr = bufnr, async = async })
-        end,
-        desc = "[lsp] format on save",
-      })
-    end
-
-    if client.supports_method("textDocument/rangeFormatting") then
-      vim.keymap.set("x", "<Leader>f", function()
-        vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
-      end, { buffer = bufnr, desc = "[lsp] format" })
-    end
+  debug = false,
+  sources = {
+    -- Formatting ---------------------
+    --  brew install shfmt
+    formatting.shfmt,
+    -- StyLua
+    formatting.stylua,
+    -- frontend
+    formatting.prettier.with({
+                               -- 比默认少了 markdown
+      filetypes = {
+        "javascript",
+        "javascriptreact",
+        "typescript",
+        "typescriptreact",
+        "vue",
+        "css",
+        "scss",
+        "less",
+        "html",
+        "json",
+        "yaml",
+        "graphql",
+        "markdown",
+      },
+      timeout = 10000,
+      prefer_local = "node_modules/.bin",
+    }),
+    -- rustfmt
+    -- rustup component add rustfmt
+    formatting.rustfmt,
+    -- Python
+    -- pip install black
+    -- asdf reshim python
+    formatting.black.with({ extra_args = { "--fast" } }),
+    -----------------------------------------------------
+    -- Ruby
+    -- gem install rubocop
+    formatting.rubocop,
+    -- json
+    -- npm install -g fixjson
+    formatting.fixjson,
+    -- toml
+    -- cargo install taplo-cli
+    formatting.taplo,
+    -----------------------------------------------------
+    -- Diagnostics  ---------------------
+    -- diagnostics.eslint.with({
+    --   prefer_local = "node_modules/.bin",
+    -- }),
+    -- npm install -g eslint_d
+    diagnostics.eslint_d.with({
+      prefer_local = "node_modules/.bin",
+    }),
+    -- diagnostics.markdownlint,
+    -- markdownlint-cli2
+    -- diagnostics.markdownlint.with({
+    --   prefer_local = "node_modules/.bin",
+    --   command = "markdownlint-cli2",
+    --   args = { "$FILENAME", "#node_modules" },
+    -- }),
+    --
+    -- code actions ---------------------
+    code_actions.gitsigns,
+    -- code_actions.eslint.with({
+    --   prefer_local = "node_modules/.bin",
+    -- }),
+    -- npm install -g eslint_d
+    code_actions.eslint_d,
+  },
+  -- #{m}: message
+  -- #{s}: source name (defaults to null-ls if not specified)
+  -- #{c}: code (if available)
+  diagnostics_format = "[#{s}] #{m}",
+  on_attach = function(_)
+    vim.cmd([[ command! Format execute 'lua vim.lsp.buf.formatting()']])
+    -- if client.resolved_capabilities.document_formatting then
+    --   vim.cmd("autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_sync()")
+    -- end
   end,
-})
+})
+