summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ftplugin/lua.lua16
-rw-r--r--init.lua1
-rw-r--r--lua/core/formatter.lua71
-rw-r--r--lua/default-config.lua7
-rw-r--r--lua/lsp/tsserver-ls.lua21
-rw-r--r--lua/lv-utils/init.lua5
-rw-r--r--lua/plugins.lua7
7 files changed, 86 insertions, 42 deletions
diff --git a/ftplugin/lua.lua b/ftplugin/lua.lua
index 2ffaa472..8305dc2c 100644
--- a/ftplugin/lua.lua
+++ b/ftplugin/lua.lua
@@ -1,3 +1,19 @@
+O.formatters.filetype["lua"] = {
+ -- prettier
+ function()
+ return {
+ exe = "stylua",
+ -- TODO: append to this for args don't overwrite
+ args = {},
+ stdin = false,
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if not require("lv-utils").check_lsp_client_active "sumneko_lua" then
-- https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone)
local sumneko_root_path = DATA_PATH .. "/lspinstall/lua"
diff --git a/init.lua b/init.lua
index 680555f2..fcb3687f 100644
--- a/init.lua
+++ b/init.lua
@@ -8,6 +8,7 @@ require "plugins"
vim.g.colors_name = O.colorscheme -- Colorscheme must get called after plugins are loaded or it will break new installs.
require "settings"
require "lv-utils"
+require "core.formatter"
-- TODO: these guys need to be in language files
-- require "lsp"
diff --git a/lua/core/formatter.lua b/lua/core/formatter.lua
index ad40dd21..50dcb654 100644
--- a/lua/core/formatter.lua
+++ b/lua/core/formatter.lua
@@ -11,48 +11,45 @@ if O.format_on_save then
}
end
--- check if formatter has been defined for the language or not
-local function formatter_exists(lang_formatter)
- if lang_formatter == nil then
- return false
- end
- if lang_formatter.exe == nil or lang_formatter.args == nil then
- return false
- end
- return true
-end
+-- -- check if formatter has been defined for the language or not
+-- local function formatter_exists(lang_formatter)
+-- if lang_formatter == nil then
+-- return false
+-- end
+-- if lang_formatter.exe == nil or lang_formatter.args == nil then
+-- return false
+-- end
+-- return true
+-- end
-- returns default formatter for given language
-local function formatter_return(lang_formatter)
- return {
- exe = lang_formatter.exe,
- args = lang_formatter.args,
- stdin = not (lang_formatter.stdin ~= nil),
- }
-end
+-- local function formatter_return(lang_formatter)
+-- return {
+-- exe = lang_formatter.exe,
+-- args = lang_formatter.args,
+-- stdin = not (lang_formatter.stdin ~= nil),
+-- }
+-- end
-- fill a table like this -> {rust: {exe:"sth",args:{"a","b"},stdin=true},go: {}...}
-local formatter_filetypes = {}
-for k, v in pairs(O.lang) do
- if formatter_exists(v.formatter) then
- local keys = v.filetypes
- if keys == nil then
- keys = { k }
- end
- for _, l in pairs(keys) do
- formatter_filetypes[l] = {
- function()
- return formatter_return(v.formatter)
- end,
- }
- end
- end
-end
+-- local formatter_filetypes = {}
+-- for k, v in pairs(O.lang) do
+-- if formatter_exists(v.formatter) then
+-- local keys = v.filetypes
+-- if keys == nil then
+-- keys = { k }
+-- end
+-- for _, l in pairs(keys) do
+-- formatter_filetypes[l] = {
+-- function()
+-- return formatter_return(v.formatter)
+-- end,
+-- }
+-- end
+-- end
+-- end
-require("formatter").setup {
- logging = false,
- filetype = formatter_filetypes,
-}
+require("formatter").setup {}
if not O.format_on_save then
vim.cmd [[if exists('#autoformat#BufWritePost')
diff --git a/lua/default-config.lua b/lua/default-config.lua
index dcad7b3d..e55f44c0 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -79,6 +79,11 @@ O = {
{ "FileType", "qf", "set nobuflisted" },
},
+ formatters = {
+ filetype = {},
+ },
+
+ -- TODO move all of this into lang specific files, only require when using
lang = {
cmake = {
formatter = {
@@ -113,7 +118,7 @@ O = {
docker = {},
efm = {},
elm = {},
- emmet = { active = true },
+ emmet = { active = false },
elixir = {},
graphql = {},
go = {
diff --git a/lua/lsp/tsserver-ls.lua b/lua/lsp/tsserver-ls.lua
index d7c4ec3c..c95b7810 100644
--- a/lua/lsp/tsserver-ls.lua
+++ b/lua/lsp/tsserver-ls.lua
@@ -1,3 +1,24 @@
+vim.cmd "let proj = FindRootDirectory()"
+print(vim.api.nvim_get_var "proj")
+local root_dir = vim.api.nvim_get_var "proj"
+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
+ args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" },
+ stdin = true,
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
+
if require("lv-utils").check_lsp_client_active "tsserver" then
return
end
diff --git a/lua/lv-utils/init.lua b/lua/lv-utils/init.lua
index 55890043..d2d23cfb 100644
--- a/lua/lv-utils/init.lua
+++ b/lua/lv-utils/init.lua
@@ -42,6 +42,11 @@ function lv_utils.define_augroups(definitions) -- {{{1
end
end
+function lv_utils.unrequire(m)
+ package.loaded[m] = nil
+ _G[m] = nil
+end
+
lv_utils.define_augroups {
_general_settings = {
diff --git a/lua/plugins.lua b/lua/plugins.lua
index d61339ae..85db0d0d 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -82,10 +82,9 @@ return require("packer").startup(function(use)
-- Formatter.nvim
use {
"mhartington/formatter.nvim",
- config = function()
- require "core.formatter"
- end,
- event = "BufRead",
+ -- config = function()
+ -- require "core.formatter"
+ -- end,
}
-- NvimTree