diff options
| -rw-r--r-- | ftplugin/lua.lua | 16 | ||||
| -rw-r--r-- | init.lua | 1 | ||||
| -rw-r--r-- | lua/core/formatter.lua | 71 | ||||
| -rw-r--r-- | lua/default-config.lua | 7 | ||||
| -rw-r--r-- | lua/lsp/tsserver-ls.lua | 21 | ||||
| -rw-r--r-- | lua/lv-utils/init.lua | 5 | ||||
| -rw-r--r-- | lua/plugins.lua | 7 | 
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" @@ -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 | 
