Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
50f1ade92c
build: add nix devshell and pre-commit hooks
Problem: oil.nvim had no reproducible dev environment. The .envrc
set up a Python venv for the now-removed docgen pipeline, and there
were no pre-commit hooks for local formatting checks.

Solution: add flake.nix with stylua, selene, and prettier in the
devshell. Replace the stale Python .envrc with 'use flake'. Add
.pre-commit-config.yaml with stylua and prettier hooks matching
other plugins in the repo collection.
2026-02-21 23:26:39 -05:00
364b787578
build: replace luacheck with selene
Problem: luacheck is unmaintained (last release 2018) and required
suppressing four warning classes to avoid false positives. It also
lacks first-class vim/neovim awareness.

Solution: switch to selene with std='vim' for vim-aware linting.
Replace the luacheck CI job with selene, update the Makefile lint
target, and delete .luacheckrc.
2026-02-21 23:25:42 -05:00
8 changed files with 98 additions and 36 deletions

4
.envrc
View file

@ -1,3 +1 @@
export VIRTUAL_ENV=venv use flake
layout python
python -c 'import pyparsing' 2>/dev/null || pip install -r scripts/requirements.txt

View file

@ -10,21 +10,14 @@ on:
- main - main
jobs: jobs:
luacheck: selene:
name: Luacheck name: Selene
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: NTBBloodbath/selene-action@v1.0.0
- name: Prepare with:
run: | args: --display-style quiet .
sudo apt-get update
sudo add-apt-repository universe
sudo apt install luarocks -y
sudo luarocks install luacheck
- name: Run Luacheck
run: luacheck lua tests
stylua: stylua:
name: StyLua name: StyLua

View file

@ -1,19 +0,0 @@
max_comment_line_length = false
codes = true
exclude_files = {
"tests/treesitter",
}
ignore = {
"212", -- Unused argument
"631", -- Line is too long
"122", -- Setting a readonly global
"542", -- Empty if branch
}
read_globals = {
"vim",
"a",
"assert",
}

17
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,17 @@
minimum_pre_commit_version: '3.5.0'
repos:
- repo: https://github.com/JohnnyMorganz/StyLua
rev: v2.3.1
hooks:
- id: stylua-github
name: stylua (Lua formatter)
files: \.lua$
pass_filenames: true
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v4.0.0-alpha.8
hooks:
- id: prettier
name: prettier
files: \.(md|toml|yaml|yml|sh)$

View file

@ -17,7 +17,7 @@ test:
.PHONY: lint .PHONY: lint
lint: scripts/nvim-typecheck-action lint: scripts/nvim-typecheck-action
./scripts/nvim-typecheck-action/typecheck.sh --workdir scripts/nvim-typecheck-action lua ./scripts/nvim-typecheck-action/typecheck.sh --workdir scripts/nvim-typecheck-action lua
luacheck lua tests --formatter plain selene --display-style quiet .
stylua --check lua tests stylua --check lua tests
## profile: use LuaJIT profiler to profile the plugin ## profile: use LuaJIT profiler to profile the plugin
@ -45,4 +45,4 @@ scripts/benchmark.nvim:
## clean: reset the repository to a clean state ## clean: reset the repository to a clean state
.PHONY: clean .PHONY: clean
clean: clean:
rm -rf scripts/nvim-typecheck-action venv .testenv perf/tmp profile.json rm -rf scripts/nvim-typecheck-action .testenv perf/tmp profile.json

43
flake.lock generated Normal file
View file

@ -0,0 +1,43 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1771207753,
"narHash": "sha256-b9uG8yN50DRQ6A7JdZBfzq718ryYrlmGgqkRm9OOwCE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d1c15b7d5806069da59e819999d70e1cec0760bf",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"systems": "systems"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

29
flake.nix Normal file
View file

@ -0,0 +1,29 @@
{
description = "oil.nvim Neovim file explorer: edit your filesystem like a buffer";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
systems.url = "github:nix-systems/default";
};
outputs =
{
nixpkgs,
systems,
...
}:
let
forEachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
in
{
devShells = forEachSystem (pkgs: {
default = pkgs.mkShell {
packages = [
pkgs.prettier
pkgs.stylua
pkgs.selene
];
};
});
};
}

1
selene.toml Normal file
View file

@ -0,0 +1 @@
std = 'vim'