mirror of
https://github.com/LunarVim/LunarVim.git
synced 2025-07-21 03:04:31 +02:00
[Feature] Add Vue formatter (prettier) setup (#1016)
This commit is contained in:
parent
b797c2398f
commit
d9936b0d84
3 changed files with 49 additions and 5 deletions
|
@ -189,5 +189,6 @@ require("lang.swift").config()
|
||||||
require("lang.terraform").config()
|
require("lang.terraform").config()
|
||||||
require("lang.tex").config()
|
require("lang.tex").config()
|
||||||
require("lang.vim").config()
|
require("lang.vim").config()
|
||||||
|
require("lang.vue").config()
|
||||||
require("lang.yaml").config()
|
require("lang.yaml").config()
|
||||||
require("lang.zig").config()
|
require("lang.zig").config()
|
||||||
|
|
|
@ -1,13 +1,44 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
M.config = function()
|
M.config = function()
|
||||||
-- TODO: implement config for language
|
O.lang.vue = {
|
||||||
return "No config available!"
|
formatter = {
|
||||||
|
exe = "prettier",
|
||||||
|
args = {
|
||||||
|
"--stdin-filepath",
|
||||||
|
"${FILEPATH}",
|
||||||
|
},
|
||||||
|
stdin = true,
|
||||||
|
},
|
||||||
|
auto_import = true,
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
M.format = function()
|
M.format = function()
|
||||||
-- TODO: implement formatter for language
|
vim.cmd "let proj = FindRootDirectory()"
|
||||||
return "No formatter available!"
|
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
|
end
|
||||||
|
|
||||||
M.lint = function()
|
M.lint = function()
|
||||||
|
@ -24,8 +55,9 @@ M.lsp = function()
|
||||||
require("lspconfig").vuels.setup {
|
require("lspconfig").vuels.setup {
|
||||||
cmd = { DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls", "--stdio" },
|
cmd = { DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls", "--stdio" },
|
||||||
on_attach = require("lsp").common_on_attach,
|
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
|
end
|
||||||
|
|
||||||
M.dap = function()
|
M.dap = function()
|
||||||
|
|
|
@ -204,6 +204,17 @@ lv_utils.define_augroups {
|
||||||
_user_autocommands = O.user_autocommands,
|
_user_autocommands = O.user_autocommands,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function lv_utils.gsub_args(args)
|
||||||
|
if args == nil or type(args) ~= "table" then
|
||||||
|
return args
|
||||||
|
end
|
||||||
|
local buffer_filepath = vim.fn.fnameescape(vim.api.nvim_buf_get_name(0))
|
||||||
|
for i = 1, #args do
|
||||||
|
args[i], _ = string.gsub(args[i], "${FILEPATH}", buffer_filepath)
|
||||||
|
end
|
||||||
|
return args
|
||||||
|
end
|
||||||
|
|
||||||
vim.cmd [[
|
vim.cmd [[
|
||||||
function! QuickFixToggle()
|
function! QuickFixToggle()
|
||||||
if empty(filter(getwininfo(), 'v:val.quickfix'))
|
if empty(filter(getwininfo(), 'v:val.quickfix'))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue