aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-04-18 00:39:01 +0200
committerGitHub <noreply@github.com>2023-04-18 00:39:01 +0200
commit601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9 (patch)
tree1f037d09be867de6edc547776e7e8551dab04c51
parentfeat: add helm-ls (#194) (diff)
downloadmason-lspconfig-601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9.tar
mason-lspconfig-601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9.tar.gz
mason-lspconfig-601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9.tar.bz2
mason-lspconfig-601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9.tar.lz
mason-lspconfig-601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9.tar.xz
mason-lspconfig-601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9.tar.zst
mason-lspconfig-601c0ad2f8870bd1d45fbdd27cb50ccfb2c8b3b9.zip
feat: notify if mason has not been set up (#195)
Closes #181.
-rw-r--r--lua/mason-lspconfig/api/command.lua2
-rw-r--r--lua/mason-lspconfig/ensure_installed.lua2
-rw-r--r--lua/mason-lspconfig/init.lua9
-rw-r--r--lua/mason-lspconfig/install.lua2
-rw-r--r--lua/mason-lspconfig/notify.lua8
-rw-r--r--lua/mason-lspconfig/server_configurations/pylsp/init.lua2
-rw-r--r--tests/mason-lspconfig/setup_spec.lua42
7 files changed, 47 insertions, 20 deletions
diff --git a/lua/mason-lspconfig/api/command.lua b/lua/mason-lspconfig/api/command.lua
index 2cd1ef5..7a7d623 100644
--- a/lua/mason-lspconfig/api/command.lua
+++ b/lua/mason-lspconfig/api/command.lua
@@ -1,7 +1,7 @@
local Optional = require "mason-core.optional"
local _ = require "mason-core.functional"
local a = require "mason-core.async"
-local notify = require "mason-core.notify"
+local notify = require "mason-lspconfig.notify"
---@async
---@param user_args string[]: The arguments, as provided by the user.
diff --git a/lua/mason-lspconfig/ensure_installed.lua b/lua/mason-lspconfig/ensure_installed.lua
index dabd931..cdb30eb 100644
--- a/lua/mason-lspconfig/ensure_installed.lua
+++ b/lua/mason-lspconfig/ensure_installed.lua
@@ -1,4 +1,4 @@
-local notify = require "mason-core.notify"
+local notify = require "mason-lspconfig.notify"
local registry = require "mason-registry"
local settings = require "mason-lspconfig.settings"
diff --git a/lua/mason-lspconfig/init.lua b/lua/mason-lspconfig/init.lua
index c364634..95b2e85 100644
--- a/lua/mason-lspconfig/init.lua
+++ b/lua/mason-lspconfig/init.lua
@@ -6,6 +6,13 @@ local M = {}
---@param config MasonLspconfigSettings | nil
function M.setup(config)
+ local ok, mason = pcall(require, "mason")
+ if not ok or mason.has_setup == false then
+ require "mason-lspconfig.notify"(
+ "mason.nvim has not been set up. Make sure to set up 'mason' before 'mason-lspconfig'. :h mason-lspconfig-quickstart",
+ vim.log.levels.WARN
+ )
+ end
local settings = require "mason-lspconfig.settings"
if config then
@@ -40,7 +47,7 @@ function M.setup_handlers(handlers)
local Optional = require "mason-core.optional"
local server_mapping = require "mason-lspconfig.mappings.server"
local registry = require "mason-registry"
- local notify = require "mason-core.notify"
+ local notify = require "mason-lspconfig.notify"
local default_handler = Optional.of_nilable(handlers[1])
diff --git a/lua/mason-lspconfig/install.lua b/lua/mason-lspconfig/install.lua
index 1ccb985..7d5320a 100644
--- a/lua/mason-lspconfig/install.lua
+++ b/lua/mason-lspconfig/install.lua
@@ -1,4 +1,4 @@
-local notify = require "mason-core.notify"
+local notify = require "mason-lspconfig.notify"
local server_mapping = require "mason-lspconfig.mappings.server"
local M = {}
diff --git a/lua/mason-lspconfig/notify.lua b/lua/mason-lspconfig/notify.lua
new file mode 100644
index 0000000..ca291df
--- /dev/null
+++ b/lua/mason-lspconfig/notify.lua
@@ -0,0 +1,8 @@
+local TITLE = "mason-lspconfig.nvim"
+
+return function(msg, level)
+ level = level or vim.log.levels.INFO
+ vim.notify(msg, level, {
+ title = TITLE,
+ })
+end
diff --git a/lua/mason-lspconfig/server_configurations/pylsp/init.lua b/lua/mason-lspconfig/server_configurations/pylsp/init.lua
index db34a8e..c9b3db7 100644
--- a/lua/mason-lspconfig/server_configurations/pylsp/init.lua
+++ b/lua/mason-lspconfig/server_configurations/pylsp/init.lua
@@ -1,6 +1,6 @@
local _ = require "mason-core.functional"
local a = require "mason-core.async"
-local notify = require "mason-core.notify"
+local notify = require "mason-lspconfig.notify"
local pip3 = require "mason-core.managers.pip3"
local process = require "mason-core.process"
local spawn = require "mason-core.spawn"
diff --git a/tests/mason-lspconfig/setup_spec.lua b/tests/mason-lspconfig/setup_spec.lua
index 6c8f293..eb5e1c0 100644
--- a/tests/mason-lspconfig/setup_spec.lua
+++ b/tests/mason-lspconfig/setup_spec.lua
@@ -89,21 +89,27 @@ describe("mason-lspconfig setup", function()
assert.spy(vim.notify).was_called(2)
assert
.spy(vim.notify)
- .was_called_with([[[mason-lspconfig.nvim] installing dummylsp]], vim.log.levels.INFO, { title = "mason.nvim" })
- assert
- .spy(vim.notify)
- .was_called_with([[[mason-lspconfig.nvim] installing fail_dummylsp]], vim.log.levels.INFO, { title = "mason.nvim" })
+ .was_called_with(
+ [[[mason-lspconfig.nvim] installing dummylsp]],
+ vim.log.levels.INFO,
+ { title = "mason-lspconfig.nvim" }
+ )
+ assert.spy(vim.notify).was_called_with(
+ [[[mason-lspconfig.nvim] installing fail_dummylsp]],
+ vim.log.levels.INFO,
+ { title = "mason-lspconfig.nvim" }
+ )
assert.wait_for(function()
assert.spy(vim.notify).was_called_with(
[[[mason-lspconfig.nvim] dummylsp was successfully installed]],
vim.log.levels.INFO,
- { title = "mason.nvim" }
+ { title = "mason-lspconfig.nvim" }
)
assert.spy(vim.notify).was_called_with(
[[[mason-lspconfig.nvim] failed to install fail_dummylsp. Installation logs are available in :Mason and :MasonLog]],
vim.log.levels.ERROR,
- { title = "mason.nvim" }
+ { title = "mason-lspconfig.nvim" }
)
end)
end)
@@ -129,22 +135,28 @@ describe("mason-lspconfig setup", function()
assert
.spy(vim.notify)
- .was_called_with([[[mason-lspconfig.nvim] installing dummylsp]], vim.log.levels.INFO, { title = "mason.nvim" })
- assert
- .spy(vim.notify)
- .was_called_with([[[mason-lspconfig.nvim] installing fail_dummylsp]], vim.log.levels.INFO, { title = "mason.nvim" })
+ .was_called_with(
+ [[[mason-lspconfig.nvim] installing dummylsp]],
+ vim.log.levels.INFO,
+ { title = "mason-lspconfig.nvim" }
+ )
+ assert.spy(vim.notify).was_called_with(
+ [[[mason-lspconfig.nvim] installing fail_dummylsp]],
+ vim.log.levels.INFO,
+ { title = "mason-lspconfig.nvim" }
+ )
assert.wait_for(function()
assert.is_true(dummy.handle:is_closed())
assert.is_true(fail_dummy.handle:is_closed())
assert.spy(vim.notify).was_called_with(
[[[mason-lspconfig.nvim] dummylsp was successfully installed]],
vim.log.levels.INFO,
- { title = "mason.nvim" }
+ { title = "mason-lspconfig.nvim" }
)
assert.spy(vim.notify).was_called_with(
[[[mason-lspconfig.nvim] failed to install fail_dummylsp. Installation logs are available in :Mason and :MasonLog]],
vim.log.levels.ERROR,
- { title = "mason.nvim" }
+ { title = "mason-lspconfig.nvim" }
)
end)
end)
@@ -289,7 +301,7 @@ describe("mason-lspconfig setup_handlers", function()
assert.spy(vim.notify).was_called_with(
"mason-lspconfig.setup_handlers: Received handler for unknown lspconfig server name: doesnt_exist_server.",
vim.log.levels.WARN,
- { title = "mason.nvim" }
+ { title = "mason-lspconfig.nvim" }
)
end)
@@ -307,12 +319,12 @@ describe("mason-lspconfig setup_handlers", function()
assert.spy(vim.notify).was_called_with(
[[[mason-lspconfig.nvim] Server "yamllint" is not a valid entry in ensure_installed. Make sure to only provide lspconfig server names.]],
vim.log.levels.WARN,
- { title = "mason.nvim" }
+ { title = "mason-lspconfig.nvim" }
)
assert.spy(vim.notify).was_called_with(
[[[mason-lspconfig.nvim] Server "hadolint" is not a valid entry in ensure_installed. Make sure to only provide lspconfig server names.]],
vim.log.levels.WARN,
- { title = "mason.nvim" }
+ { title = "mason-lspconfig.nvim" }
)
end)
)