200 lines
4.4 KiB
YAML
200 lines
4.4 KiB
YAML
---
|
|
# DAP servers ====================================
|
|
|
|
debugpy:
|
|
category: [dap]
|
|
type: python
|
|
|
|
elixirls:
|
|
category:
|
|
- lsp
|
|
- dap
|
|
type: custom
|
|
env:
|
|
MIX_ENV: prod
|
|
script:
|
|
- |
|
|
if [ ! -d "$PKG_INSTALL_DIR" ]; then
|
|
git clone --depth 1 --single-branch https://github.com/elixir-lsp/elixir-ls.git "$PKG_INSTALL_DIR"
|
|
fi
|
|
- &git_checkout |
|
|
cd "$PKG_INSTALL_DIR"
|
|
git restore . && git clean -d -f
|
|
git fetch --tags --prune --prune-tags
|
|
git switch --detach "$(git describe --tags "$(git rev-list --tags --max-count=1)")"
|
|
- mix deps.get
|
|
- mix compile
|
|
- mix elixir_ls.release2 -o release/
|
|
|
|
vscode-js-debug:
|
|
category: [dap]
|
|
type: custom
|
|
script:
|
|
- |
|
|
if [ ! -d "$PKG_INSTALL_DIR" ]; then
|
|
git clone --depth 1 --single-branch https://github.com/microsoft/vscode-js-debug.git "$PKG_INSTALL_DIR"
|
|
fi
|
|
- *git_checkout
|
|
- pnpm install
|
|
- pnpm run compile -- dapDebugServer
|
|
|
|
# LSP servers ====================================
|
|
|
|
ansiblels: &nodejs_lsp
|
|
category: [lsp]
|
|
type: nodejs
|
|
pkgs: ['@ansible/ansible-language-server']
|
|
|
|
awk_ls:
|
|
<<: *nodejs_lsp
|
|
pkgs: [awk-language-server]
|
|
|
|
bashls:
|
|
<<: *nodejs_lsp
|
|
pkgs: [bash-language-server]
|
|
|
|
dockerls:
|
|
<<: *nodejs_lsp
|
|
pkgs: [dockerfile-language-server-nodejs]
|
|
|
|
emmet_language_server:
|
|
<<: *nodejs_lsp
|
|
pkgs: ['@olrtg/emmet-language-server']
|
|
|
|
graphql:
|
|
<<: *nodejs_lsp
|
|
pkgs: [graphql-language-service-cli]
|
|
|
|
guile_ls:
|
|
category: [lsp]
|
|
type: custom
|
|
script:
|
|
- |
|
|
if [ ! -d "$PKG_INSTALL_DIR" ]; then
|
|
git clone --depth 1 --single-branch https://codeberg.org/rgherdt/scheme-lsp-server.git "$PKG_INSTALL_DIR"
|
|
fi
|
|
- *git_checkout
|
|
- guix package -f guix.scm
|
|
|
|
mdx_analyzer:
|
|
<<: *nodejs_lsp
|
|
pkgs: ['@mdx-js/language-server']
|
|
|
|
# NOTE: this is here since ocaml-lsp-server needs to be installed
|
|
# into every opam switch (so would be invoked many times)
|
|
ocamllsp:
|
|
category: [lsp]
|
|
type: custom
|
|
script:
|
|
- opam install ocaml-lsp-server ocamlformat
|
|
|
|
purescriptls:
|
|
<<: *nodejs_lsp
|
|
pkgs: [purescript-language-server]
|
|
|
|
pylsp:
|
|
category: [lsp]
|
|
type: python
|
|
pkgs:
|
|
- python-lsp-server[all]
|
|
# - pyls-flake8
|
|
# - pylsp-mypy
|
|
# - pyls-isort
|
|
# - pyls-memestra
|
|
- pylsp-rope
|
|
# - python-lsp-black
|
|
|
|
remark_ls:
|
|
<<: *nodejs_lsp
|
|
pkgs: [remark-language-server]
|
|
|
|
# NOTE: a local OPAM switch isn't created here for simplicity.
|
|
# It can be done manually after the clone
|
|
rescriptls:
|
|
category: [lsp]
|
|
type: custom
|
|
script:
|
|
- |
|
|
if [ ! -d "$PKG_INSTALL_DIR" ]; then
|
|
git clone --depth 1 --single-branch https://github.com/rescript-lang/rescript-vscode.git "$PKG_INSTALL_DIR"
|
|
fi
|
|
- *git_checkout
|
|
- opam install . --deps-only --yes
|
|
- dune build -p analysis
|
|
- |
|
|
case "$(uname)" in
|
|
Linux)
|
|
mkdir -p server/analysis_binaries/linux
|
|
cp _build/default/analysis/bin/main.exe server/analysis_binaries/linux/rescript-editor-analysis.exe
|
|
;;
|
|
Darwin)
|
|
if [ "$(uname -m)" = "arm64" ]; then
|
|
mkdir -p server/analysis_binaries/darwinarm64
|
|
cp _build/default/analysis/bin/main.exe server/analysis_binaries/darwinarm64/rescript-editor-analysis.exe
|
|
else
|
|
mkdir -p server/analysis_binaries/darwin
|
|
cp _build/default/analysis/bin/main.exe server/analysis_binaries/darwin/rescript-editor-analysis.exe
|
|
fi
|
|
;;
|
|
esac
|
|
- sed -i'.bak' '/postinstall/d' package.json
|
|
- pnpm install -D
|
|
- pnpm install -C server
|
|
- pnpm install -C server vscode-languageserver-types
|
|
- pnpm install -C client
|
|
- pnpm install -C client vscode-languageserver-protocol
|
|
- pnpm run compile
|
|
|
|
ruff_lsp:
|
|
category: [lsp]
|
|
type: python
|
|
pkgs: [ruff-lsp]
|
|
|
|
svelte:
|
|
<<: *nodejs_lsp
|
|
pkgs: [svelte-language-server]
|
|
|
|
tailwindcss:
|
|
<<: *nodejs_lsp
|
|
pkgs: ['@tailwindcss/language-server']
|
|
|
|
tsserver:
|
|
<<: *nodejs_lsp
|
|
pkgs:
|
|
- typescript
|
|
- typescript-language-server
|
|
|
|
volar:
|
|
<<: *nodejs_lsp
|
|
pkgs:
|
|
- typescript
|
|
- '@vue/language-server'
|
|
|
|
vscode:
|
|
<<: *nodejs_lsp
|
|
pkgs: [vscode-langservers-extracted]
|
|
|
|
yamlls:
|
|
<<: *nodejs_lsp
|
|
pkgs: ['yaml-language-server']
|
|
|
|
# Linters & Formatters ===========================
|
|
|
|
codespell: &python_lint
|
|
category: [lint]
|
|
type: python
|
|
|
|
cspell: &nodejs_lint
|
|
category: [lint]
|
|
type: nodejs
|
|
|
|
proselint: *python_lint
|
|
|
|
sql_formatter:
|
|
<<: *nodejs_lint
|
|
pkgs: [sql-formatter]
|
|
|
|
sqlfluff: *python_lint
|
|
|
|
textlint: *nodejs_lint
|