diff options
Diffstat (limited to 'lua/lang/vue.lua')
-rw-r--r-- | lua/lang/vue.lua | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/lua/lang/vue.lua b/lua/lang/vue.lua index 8fd2af7e..33c6dda7 100644 --- a/lua/lang/vue.lua +++ b/lua/lang/vue.lua @@ -1,13 +1,44 @@ local M = {} M.config = function() - -- TODO: implement config for language - return "No config available!" + O.lang.vue = { + formatter = { + exe = "prettier", + args = { + "--stdin-filepath", + "${FILEPATH}", + }, + stdin = true, + }, + auto_import = true, + } end M.format = function() - -- TODO: implement formatter for language - return "No formatter available!" + vim.cmd "let proj = FindRootDirectory()" + local root_dir = vim.api.nvim_get_var "proj" + + -- use the global formatter if you didn't find the local one + local formatter_instance = root_dir .. "/node_modules/.bin/" .. O.lang.vue.formatter.exe + if vim.fn.executable(formatter_instance) ~= 1 then + formatter_instance = O.lang.vue.formatter.exe + end + + local ft = vim.bo.filetype + O.formatters.filetype[ft] = { + function() + local lv_utils = require "lv-utils" + return { + exe = formatter_instance, + args = lv_utils.gsub_args(O.lang.vue.formatter.args), + stdin = O.lang.vue.formatter.stdin, + } + end, + } + require("formatter.config").set_defaults { + logging = false, + filetype = O.formatters.filetype, + } end M.lint = function() @@ -24,8 +55,9 @@ M.lsp = function() require("lspconfig").vuels.setup { cmd = { DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls", "--stdio" }, on_attach = require("lsp").common_on_attach, - root_dir = require("lspconfig").util.root_pattern(".git", "vue.config.js", "package.json", "yarn.lock"), } + + require("lsp.ts-fmt-lint").setup() end M.dap = function() |