diff options
Diffstat (limited to 'lua/lang')
| -rw-r--r-- | lua/lang/swift.lua | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/lua/lang/swift.lua b/lua/lang/swift.lua new file mode 100644 index 00000000..69254caa --- /dev/null +++ b/lua/lang/swift.lua @@ -0,0 +1,52 @@ +local M = {} + +M.config = function() +  O.lang.swift = { +    formatter = { +      exe = "swiftformat", +      args = {}, +      stdin = true, +    }, +  } +end + +M.format = function() +  -- TODO: implement formatter (if applicable) +  return "No formatter configured!" +end + +M.lint = function() +  O.formatters.filetype["swift"] = { +    function() +      return { +        exe = O.lang.swift.formatter.exe, +        args = O.lang.swift.formatter.args, +        stdin = O.lang.swift.formatter.stdin, +      } +    end, +  } + +  require("formatter.config").set_defaults { +    logging = false, +    filetype = O.formatters.filetype, +  } +end + +M.lsp = function() +  if require("lv-utils").check_lsp_client_active "sourcekit" then +    return +  end + +  require("lspconfig").sourcekit.setup { +    cmd = { "xcrun", "sourcekit-lsp" }, +    on_attach = require("lsp").common_on_attach, +    filetypes = { "swift" }, +  } +end + +M.dap = function() +  -- TODO: implement dap +  return "No DAP configured!" +end + +return M | 
