aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/autogenerate.yml (renamed from .github/workflows/run-autogen.yml)21
-rw-r--r--.github/workflows/check-generated-code-state.yml29
-rw-r--r--.github/workflows/metadata-diff.yml30
-rw-r--r--.github/workflows/stylua.yml1
-rw-r--r--Makefile15
-rw-r--r--lua/mason/mappings/language.lua2
-rw-r--r--scripts/autogen_metadata.lua150
-rwxr-xr-xscripts/autogen_metadata.sh12
-rw-r--r--scripts/lua/mason-scripts/mason-lspconfig/generate.lua39
-rw-r--r--scripts/lua/mason-scripts/mason-schemas/generate.lua63
-rw-r--r--scripts/lua/mason-scripts/mason/generate.lua49
-rw-r--r--scripts/lua/mason-scripts/utils.lua21
-rwxr-xr-xscripts/nvim.sh11
13 files changed, 237 insertions, 206 deletions
diff --git a/.github/workflows/run-autogen.yml b/.github/workflows/autogenerate.yml
index 1a97114f..3c596ca0 100644
--- a/.github/workflows/run-autogen.yml
+++ b/.github/workflows/autogenerate.yml
@@ -1,9 +1,9 @@
-name: Run autogen script
+name: Autogenerate code
on:
workflow_dispatch:
schedule:
- - cron: "15 13 * * *"
+ - cron: "0 10 * * *"
jobs:
run-autogen-script:
@@ -15,13 +15,8 @@ jobs:
neovim: true
version: v0.7.0
- - name: Clone dependencies
- run: |
- mkdir -p ~/.local/share/nvim/site/pack/packer/start
- git clone --depth 1 https://github.com/neovim/nvim-lspconfig ~/.local/share/nvim/site/pack/packer/start/nvim-lspconfig
-
- - name: Run autogen_metadata.sh script
- run: ./scripts/autogen_metadata.sh
+ - name: make autogenerate
+ run: make autogenerate
- name: Create Pull Request
id: cpr
@@ -30,13 +25,13 @@ jobs:
token: ${{ secrets.PAT }}
author: "William Botman <william+bot@redwill.se>"
committer: "William Botman <william+bot@redwill.se>"
- add-paths: lua/mason/_generated
- commit-message: run autogen_metadata.lua
- branch: chore/autogen_metadata
+ add-paths: lua/mason-lspconfig lua/mason-schemas
+ commit-message: "chore: update generated code"
+ branch: chore/autogenerate
branch-suffix: short-commit-hash
delete-branch: true
labels: automerge
- title: run autogen_metadata.lua
+ title: "chore: update generated code"
- name: Enable Pull Request Automerge
if: steps.cpr.outputs.pull-request-operation == 'created'
diff --git a/.github/workflows/check-generated-code-state.yml b/.github/workflows/check-generated-code-state.yml
new file mode 100644
index 00000000..e79e14fb
--- /dev/null
+++ b/.github/workflows/check-generated-code-state.yml
@@ -0,0 +1,29 @@
+name: Check generated code state
+
+on:
+ push:
+ branches:
+ - "alpha"
+ pull_request:
+
+jobs:
+ check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: rhysd/action-setup-vim@v1
+ with:
+ neovim: true
+ version: v0.7.0
+
+ - name: make generate
+ run: make generate
+
+ - name: Ensure there are no diffs
+ run: |
+ git update-index -q --refresh
+ git diff
+ git diff-index --exit-code --quiet HEAD -- || {
+ echo '::error::Generated code is not up to date, run "make generate".';
+ exit 1;
+ }
diff --git a/.github/workflows/metadata-diff.yml b/.github/workflows/metadata-diff.yml
deleted file mode 100644
index ddc129ac..00000000
--- a/.github/workflows/metadata-diff.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-name: Metadata diff checker
-
-on:
- push:
- branches:
- - "main"
- pull_request:
-
-jobs:
- metadata-diff-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: rhysd/action-setup-vim@v1
- with:
- neovim: true
- version: v0.7.0
-
- - name: Clone dependencies
- run: |
- mkdir -p ~/.local/share/nvim/site/pack/packer/start
- git clone --depth 1 https://github.com/neovim/nvim-lspconfig ~/.local/share/nvim/site/pack/packer/start/nvim-lspconfig
-
- - name: Run autogen_metadata.sh script
- run: ./scripts/autogen_metadata.sh
-
- - name: Ensure there are no diffs
- run: |
- git update-index --refresh
- git diff-index --quiet HEAD --
diff --git a/.github/workflows/stylua.yml b/.github/workflows/stylua.yml
index 1532fc6f..877795de 100644
--- a/.github/workflows/stylua.yml
+++ b/.github/workflows/stylua.yml
@@ -3,6 +3,7 @@ name: Stylua check
on:
push:
branches:
+ - "alpha"
pull_request:
jobs:
diff --git a/Makefile b/Makefile
index e27f90a1..5483a83e 100644
--- a/Makefile
+++ b/Makefile
@@ -20,4 +20,19 @@ clean: clean_fixtures clean_dependencies
test: clean_fixtures dependencies
INSTALL_ROOT_DIR=${INSTALL_ROOT_DIR} $(NVIM_HEADLESS) -c "call RunTests()"
+.PHONY: lspconfig-generate
+lspconfig-generate: dependencies
+ ./scripts/nvim.sh scripts/lua/mason-scripts/mason-lspconfig/generate.lua
+
+.PHONY: schemas-generate
+schemas-generate: dependencies
+ ./scripts/nvim.sh scripts/lua/mason-scripts/mason-schemas/generate.lua
+
+.PHONY: autogenerate
+autogenerate: schemas-generate lspconfig-generate
+
+.PHONY: generate
+generate: dependencies
+ ./scripts/nvim.sh scripts/lua/mason-scripts/mason/generate.lua
+
# vim:noexpandtab
diff --git a/lua/mason/mappings/language.lua b/lua/mason/mappings/language.lua
index b005d2da..af245d7f 100644
--- a/lua/mason/mappings/language.lua
+++ b/lua/mason/mappings/language.lua
@@ -70,7 +70,7 @@ return {
prisma = { "prisma-language-server" },
puppet = { "puppet-editor-services" },
purescript = { "purescript-language-server" },
- python = { "debugpy", "jedi-language-server", "pyright", "python-lsp-server", "sourcery" },
+ python = { "black", "debugpy", "jedi-language-server", "pyright", "python-lsp-server", "sourcery" },
r = { "r-languageserver" },
reason = { "reason-language-server" },
rescript = { "rescript-lsp" },
diff --git a/scripts/autogen_metadata.lua b/scripts/autogen_metadata.lua
deleted file mode 100644
index 736b1bcb..00000000
--- a/scripts/autogen_metadata.lua
+++ /dev/null
@@ -1,150 +0,0 @@
-local a = require "mason-core.async"
-local Path = require "mason-core.path"
-local fetch = require "mason-core.fetch"
-local _ = require "mason-core.functional"
-local fs = require "mason-core.fs"
-local registry = require "mason-registry"
-local lspconfig_server_mapping = require "mason-lspconfig.mappings.server"
-
----@async
----@param path string
----@param contents string
----@param flags string
-local function write_file(path, contents, flags)
- fs.async.write_file(
- path,
- table.concat({
- "-- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY.",
- "-- stylua: ignore start",
- contents,
- }, "\n"),
- flags
- )
-end
-
-local function get_lspconfig(name)
- return require(("lspconfig.server_configurations.%s"):format(name))
-end
-
----@async
-local function create_lspconfig_filetype_map()
- local filetype_map = {}
-
- for _, server_name in ipairs(_.keys(lspconfig_server_mapping.lspconfig_to_package)) do
- local config = get_lspconfig(server_name)
- for _, filetype in ipairs(config.default_config.filetypes or {}) do
- if not filetype_map[filetype] then
- filetype_map[filetype] = {}
- end
- table.insert(filetype_map[filetype], server_name)
- table.sort(filetype_map[filetype])
- end
- end
-
- write_file(
- Path.concat { vim.loop.cwd(), "lua", "mason-lspconfig", "mappings", "filetype.lua" },
- "return " .. vim.inspect(filetype_map),
- "w"
- )
-end
-
----@async
-local function create_language_map()
- local language_map = {}
- local sorted_packages = _.sort_by(_.prop "name", registry.get_all_packages())
- _.each(function(pkg)
- _.each(function(language)
- local language_lc = language:lower()
- language_map[language_lc] = _.append(pkg.name, language_map[language_lc] or {})
- end, pkg.spec.languages)
- end, sorted_packages)
-
- write_file(
- Path.concat { vim.loop.cwd(), "lua", "mason", "mappings", "language.lua" },
- "return " .. vim.inspect(language_map),
- "w"
- )
-end
-
----@async
-local function create_lsp_setting_schema_files()
- local lsp_schemas_path = Path.concat {
- vim.loop.cwd(),
- "lua",
- "mason-schemas",
- "lsp",
- }