Added default formatters (#908)

* added default formatters for a couple of langs

* fix: sugesstions from tastyep

* allow users to change default formatters

* suggestion: mellow pointed out the telescope issue

* we don't need to use formatter.setup
This commit is contained in:
Abouzar Parvan 2021-07-14 04:19:36 +04:30 committed by GitHub
parent 6bbc082f57
commit de7ec62f5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 164 additions and 38 deletions

View file

@ -1,3 +1,19 @@
O.formatters.filetype["c"] = {
function()
return {
exe = O.lang.c.formatter.exe,
args = O.lang.c.formatter.args,
stdin = not (O.lang.c.formatter.stdin ~= nil),
}
end,
}
O.formatters.filetype["cpp"] = O.formatters.filetype["c"]
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if require("lv-utils").check_lsp_client_active "clangd" then
return
end

View file

@ -1,3 +1,17 @@
O.formatters.filetype["dart"] = {
function()
return {
exe = O.lang.dart.formatter.exe,
args = O.lang.dart.formatter.args,
stdin = not (O.lang.dart.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if require("lv-utils").check_lsp_client_active "dartls" then
return
end

View file

@ -1,3 +1,18 @@
O.formatters.filetype["go"] = {
function()
return {
exe = O.lang.go.formatter.exe,
args = O.lang.go.formatter.args,
stdin = not (O.lang.go.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if not require("lv-utils").check_lsp_client_active "gopls" then
require("lspconfig").gopls.setup {
cmd = { DATA_PATH .. "/lspinstall/go/gopls" },

View file

@ -1,3 +1,17 @@
O.formatters.filetype["json"] = {
function()
return {
exe = O.lang.json.formatter.exe,
args = O.lang.json.formatter.args,
stdin = not (O.lang.json.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if require("lv-utils").check_lsp_client_active "jsonls" then
return
end

View file

@ -1,11 +1,9 @@
O.formatters.filetype["lua"] = {
-- prettier
function()
return {
exe = "stylua",
-- TODO: append to this for args don't overwrite
args = {},
stdin = false,
exe = O.lang.lua.formatter.exe,
args = O.lang.lua.formatter.args,
stdin = not (O.lang.lua.formatter.stdin ~= nil),
}
end,
}
@ -48,16 +46,4 @@ if not require("lv-utils").check_lsp_client_active "sumneko_lua" then
}
end
if O.lang.lua.autoformat then
require("lv-utils").define_augroups {
_lua_autoformat = {
{
"BufWritePre",
"*.lua",
"lua vim.lsp.buf.formatting_sync(nil, 1000)",
},
},
}
end
vim.cmd "setl ts=2 sw=2"

View file

@ -1,3 +1,17 @@
O.formatters.filetype["php"] = {
function()
return {
exe = O.lang.php.formatter.exe,
args = O.lang.php.formatter.args,
stdin = not (O.lang.php.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if require("lv-utils").check_lsp_client_active "intelephense" then
return
end

View file

@ -1,3 +1,18 @@
O.formatters.filetype["python"] = {
function()
return {
exe = O.lang.python.formatter.exe,
args = O.lang.python.formatter.args,
stdin = not (O.lang.python.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
local python_arguments = {}
-- TODO: replace with path argument

View file

@ -1,3 +1,17 @@
O.formatters.filetype["ruby"] = {
function()
return {
exe = O.lang.ruby.formatter.exe,
args = O.lang.ruby.formatter.args,
stdin = not (O.lang.ruby.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if require("lv-utils").check_lsp_client_active "solargraph" then
return
end

View file

@ -1,3 +1,17 @@
O.formatters.filetype["rust"] = {
function()
return {
exe = O.lang.rust.formatter.exe,
args = O.lang.rust.formatter.args,
stdin = not (O.lang.rust.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if require("lv-utils").check_lsp_client_active "rust_analyzer" then
return
end
@ -81,7 +95,7 @@ else
cmd = { DATA_PATH .. "/lspinstall/rust/rust-analyzer" },
on_attach = require("lsp").common_on_attach,
filetypes = { "rust" },
root_dir = require("lspconfig.util").root_pattern("Cargo.toml", "rust-project.json"),
root_dir = require("lspconfig.util").root_pattern("Carrust.toml", "rust-project.json"),
}
end

View file

@ -1,3 +1,17 @@
O.formatters.filetype["sh"] = {
function()
return {
exe = O.lang.sh.formatter.exe,
args = O.lang.sh.formatter.args,
stdin = not (O.lang.sh.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if not require("lv-utils").check_lsp_client_active "bashls" then
-- npm i -g bash-language-server
require("lspconfig").bashls.setup {
@ -26,7 +40,7 @@ if not require("lv-utils").check_lsp_client_active "efm" then
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
root_dir = require("lspconfig").util.root_pattern(".git/"),
root_dir = require("lspconfig").util.root_pattern ".git/",
filetypes = { "sh" },
settings = {
rootMarkers = { ".git/" },

View file

@ -33,7 +33,6 @@ vim.api.nvim_exec(
]],
false
)
if (O.lang.latex.auto_save)
then
vim.api.nvim_exec([[au FocusLost * :wa]],false)
if O.lang.latex.auto_save then
vim.api.nvim_exec([[au FocusLost * :wa]], false)
end

View file

@ -1,3 +1,17 @@
O.formatters.filetype["yaml"] = {
function()
return {
exe = O.lang.yaml.formatter.exe,
args = O.lang.yaml.formatter.args,
stdin = not (O.lang.yaml.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if require("lv-utils").check_lsp_client_active "yamlls" then
return
end

View file

@ -24,7 +24,7 @@ if not require("lv-utils").check_lsp_client_active "efm" then
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
root_dir = require("lspconfig").util.root_pattern(".git/"),
root_dir = require("lspconfig").util.root_pattern ".git/",
filetypes = { "zsh" },
settings = {
rootMarkers = { ".git/" },

View file

@ -53,8 +53,6 @@ if not status_ok then
return
end
formatter.setup {}
if not O.format_on_save then
vim.cmd [[if exists('#autoformat#BufWritePost')
:autocmd! autoformat

View file

@ -258,11 +258,6 @@ O = {
"typescript",
"typescriptreact",
},
formatter = {
exe = "prettier",
args = { "--write", "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" },
stdin = false,
},
},
terraform = {},
tsserver = {
@ -275,8 +270,7 @@ O = {
},
formatter = {
exe = "prettier",
args = { "--write", "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" },
stdin = false,
args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" },
},
},
vim = {},

View file

@ -1,18 +1,23 @@
vim.cmd "let proj = FindRootDirectory()"
print(vim.api.nvim_get_var "proj")
local root_dir = vim.api.nvim_get_var "proj"
-- use the global prettier if you didn't find the local one
local prettier_instance = root_dir .. "/node_modules/.bin/prettier"
if vim.fn.executable(prettier_instance) ~= 1 then
prettier_instance = O.lang.tsserver.formatter.exe
end
O.formatters.filetype["javascriptreact"] = {
-- vim.cmd "let root_dir "
-- prettier
function()
return {
exe = root_dir .. "/node_modules/.bin/prettier",
-- TODO: append to this for args don't overwrite
exe = prettier_instance,
-- TODO: allow user to override this
args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" },
stdin = true,
stdin = true
}
end,
}
O.formatters.filetype["javascript"] = O.formatters.filetype["javascriptreact"]
require("formatter.config").set_defaults {
logging = false,