changeset 323:3b25f3aa7014

Use efm folders to store efm configuration per language To add a language configuration: - create a file under lua/efm/<filetype>.lua - require the langauges table from efm/languages - add the configuration
author zegervdv <zegervdv@me.com>
date Mon, 21 Dec 2020 17:16:16 +0100
parents deb606f02fc4
children 64a0c6cec54c
files dot_config/nvim/config.lua dot_config/nvim/lua/efm/languages.lua dot_config/nvim/lua/efm/python.lua
diffstat 3 files changed, 29 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/dot_config/nvim/config.lua	Mon Dec 21 11:03:07 2020 +0100
+++ b/dot_config/nvim/config.lua	Mon Dec 21 17:16:16 2020 +0100
@@ -130,23 +130,12 @@
 end
 
 if (vim.fn.executable('efm-langserver') == 1) then
-  languages = {};
+  require 'efm/python'
 
-  languages.python = {};
-  if (vim.fn.executable('black') == 1) then
-    table.insert(languages.python, {
-      formatCommand = "black -",
-      formatStdin = true
-    })
-  end
-  if (vim.fn.executable('flake8') == 1) then
-    table.insert(languages.python, {
-      lintCommand = "flake8 --stdin-display-name ${INPUT} -",
-      lintStdin = true,
-      lintIgnoreExitCode = true,
-      lintFormats = {"%f:%l:%c: %m"}
-    })
-  end
+  -- May not be installed, use pcall to handle errors
+  pcall(require, 'efm/systemverilog')
+
+  local language_cfg = require'efm/languages'
 
   lsp.efm.setup{
     on_attach = on_attach;
@@ -154,7 +143,7 @@
     root_dir = lsputil.root_pattern('.git', '.hg');
     settings = {
       rootMarkers = {".git/", ".hg/"},
-      languages = languages
+      languages = language_cfg
     };
   }
 end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dot_config/nvim/lua/efm/languages.lua	Mon Dec 21 17:16:16 2020 +0100
@@ -0,0 +1,3 @@
+local configs = {}
+
+return setmetatable({}, configs)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dot_config/nvim/lua/efm/python.lua	Mon Dec 21 17:16:16 2020 +0100
@@ -0,0 +1,20 @@
+local languages = require'efm/languages'
+
+languages.python = {};
+
+if (vim.fn.executable('black') == 1) then
+  table.insert(languages.python, {
+    formatCommand = "black -",
+    formatStdin = true
+  })
+end
+
+if (vim.fn.executable('flake8') == 1) then
+  table.insert(languages.python, {
+    lintCommand = "flake8 --stdin-display-name ${INPUT} -",
+    lintStdin = true,
+    lintIgnoreExitCode = true,
+    lintFormats = {"%f:%l:%c: %m"}
+  })
+end
+