css.lua 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. vim.cmd "let proj = FindRootDirectory()"
  2. local root_dir = vim.api.nvim_get_var "proj"
  3. -- use the global prettier if you didn't find the local one
  4. local prettier_instance = root_dir .. "/node_modules/.bin/prettier"
  5. if vim.fn.executable(prettier_instance) ~= 1 then
  6. prettier_instance = O.lang.tsserver.formatter.exe
  7. end
  8. local ft = vim.bo.filetype
  9. O.formatters.filetype[ft]= {
  10. function()
  11. local args = { "--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)) }
  12. -- TODO: O.lang.[ft].formatter.args
  13. local extend_args = O.lang.css.formatter.args
  14. for i = 1, #extend_args do
  15. table.insert(args, extend_args[i])
  16. end
  17. return {
  18. exe = prettier_instance,
  19. args = args,
  20. stdin = true
  21. }
  22. end,
  23. }
  24. require("formatter.config").set_defaults {
  25. logging = false,
  26. filetype = O.formatters.filetype,
  27. }
  28. if not require("lv-utils").check_lsp_client_active "cssls" then
  29. local capabilities = vim.lsp.protocol.make_client_capabilities()
  30. capabilities.textDocument.completion.completionItem.snippetSupport = true
  31. -- npm install -g vscode-css-languageserver-bin
  32. require("lspconfig").cssls.setup {
  33. cmd = {
  34. "node",
  35. DATA_PATH .. "/lspinstall/css/vscode-css/css-language-features/server/dist/node/cssServerMain.js",
  36. "--stdio",
  37. },
  38. on_attach = require("lsp").common_on_attach,
  39. capabilities = capabilities,
  40. }
  41. end
  42. vim.cmd "setl ts=2 sw=2"