Compare commits
No commits in common. "main" and "chore/add-issue-templates" have entirely different histories.
main
...
chore/add-
13 changed files with 125 additions and 183 deletions
76
.github/workflows/quality.yaml
vendored
76
.github/workflows/quality.yaml
vendored
|
|
@ -11,6 +11,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
lua: ${{ steps.changes.outputs.lua }}
|
lua: ${{ steps.changes.outputs.lua }}
|
||||||
|
python: ${{ steps.changes.outputs.python }}
|
||||||
markdown: ${{ steps.changes.outputs.markdown }}
|
markdown: ${{ steps.changes.outputs.markdown }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
@ -24,7 +25,10 @@ jobs:
|
||||||
- '*.lua'
|
- '*.lua'
|
||||||
- '.luarc.json'
|
- '.luarc.json'
|
||||||
- '*.toml'
|
- '*.toml'
|
||||||
- 'vim.yaml'
|
python:
|
||||||
|
- 'scripts/**/*.py'
|
||||||
|
- 'pyproject.toml'
|
||||||
|
- 'uv.lock'
|
||||||
markdown:
|
markdown:
|
||||||
- '*.md'
|
- '*.md'
|
||||||
|
|
||||||
|
|
@ -35,8 +39,11 @@ jobs:
|
||||||
if: ${{ needs.changes.outputs.lua == 'true' }}
|
if: ${{ needs.changes.outputs.lua == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: cachix/install-nix-action@v31
|
- uses: JohnnyMorganz/stylua-action@v4
|
||||||
- run: nix develop --command stylua --check .
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
version: 2.1.0
|
||||||
|
args: --check .
|
||||||
|
|
||||||
lua-lint:
|
lua-lint:
|
||||||
name: Lua Lint Check
|
name: Lua Lint Check
|
||||||
|
|
@ -45,8 +52,11 @@ jobs:
|
||||||
if: ${{ needs.changes.outputs.lua == 'true' }}
|
if: ${{ needs.changes.outputs.lua == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: cachix/install-nix-action@v31
|
- name: Lint with Selene
|
||||||
- run: nix develop --command selene --display-style quiet .
|
uses: NTBBloodbath/selene-action@v1.0.0
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
args: --display-style quiet .
|
||||||
|
|
||||||
lua-typecheck:
|
lua-typecheck:
|
||||||
name: Lua Type Check
|
name: Lua Type Check
|
||||||
|
|
@ -62,6 +72,48 @@ jobs:
|
||||||
directories: lua
|
directories: lua
|
||||||
configpath: .luarc.json
|
configpath: .luarc.json
|
||||||
|
|
||||||
|
python-format:
|
||||||
|
name: Python Format Check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: changes
|
||||||
|
if: ${{ needs.changes.outputs.python == 'true' }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install uv
|
||||||
|
uses: astral-sh/setup-uv@v4
|
||||||
|
- name: Install ruff
|
||||||
|
run: uv tool install ruff
|
||||||
|
- name: Check Python formatting with ruff
|
||||||
|
run: ruff format --check .
|
||||||
|
|
||||||
|
python-lint:
|
||||||
|
name: Python Lint Check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: changes
|
||||||
|
if: ${{ needs.changes.outputs.python == 'true' }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install uv
|
||||||
|
uses: astral-sh/setup-uv@v4
|
||||||
|
- name: Install ruff
|
||||||
|
run: uv tool install ruff
|
||||||
|
- name: Lint Python files with ruff
|
||||||
|
run: ruff check .
|
||||||
|
|
||||||
|
python-typecheck:
|
||||||
|
name: Python Type Check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: changes
|
||||||
|
if: ${{ needs.changes.outputs.python == 'true' }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install uv
|
||||||
|
uses: astral-sh/setup-uv@v4
|
||||||
|
- name: Install dependencies with mypy
|
||||||
|
run: uv sync --dev
|
||||||
|
- name: Type check Python files with mypy
|
||||||
|
run: uv run mypy .
|
||||||
|
|
||||||
markdown-format:
|
markdown-format:
|
||||||
name: Markdown Format Check
|
name: Markdown Format Check
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
@ -69,5 +121,15 @@ jobs:
|
||||||
if: ${{ needs.changes.outputs.markdown == 'true' }}
|
if: ${{ needs.changes.outputs.markdown == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: cachix/install-nix-action@v31
|
- name: Setup pnpm
|
||||||
- run: nix develop --command prettier --check .
|
uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
- name: Install prettier
|
||||||
|
run: pnpm add -g prettier@3.1.0
|
||||||
|
- name: Check markdown formatting with prettier
|
||||||
|
run: prettier --check .
|
||||||
|
|
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -8,6 +8,3 @@ venv/
|
||||||
CLAUDE.md
|
CLAUDE.md
|
||||||
__pycache__
|
__pycache__
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
.direnv/
|
|
||||||
.envrc
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
{
|
{
|
||||||
"runtime.version": "LuaJIT",
|
"runtime.version": "Lua 5.1",
|
||||||
"runtime.path": ["lua/?.lua", "lua/?/init.lua"],
|
"runtime.path": ["lua/?.lua", "lua/?/init.lua"],
|
||||||
"diagnostics.globals": ["vim"],
|
"diagnostics.globals": ["vim"],
|
||||||
"workspace.library": ["$VIMRUNTIME/lua", "${3rd}/luv/library"],
|
"workspace.library": ["$VIMRUNTIME/lua", "${3rd}/luv/library"],
|
||||||
"workspace.checkThirdParty": false,
|
"workspace.checkThirdParty": false,
|
||||||
"workspace.ignoreDir": [".direnv"],
|
|
||||||
"completion.callSnippet": "Replace"
|
"completion.callSnippet": "Replace"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,26 @@ repos:
|
||||||
files: \.lua$
|
files: \.lua$
|
||||||
pass_filenames: true
|
pass_filenames: true
|
||||||
|
|
||||||
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
|
rev: v0.14.3
|
||||||
|
hooks:
|
||||||
|
- id: ruff-format
|
||||||
|
name: ruff (format)
|
||||||
|
files: \.py$
|
||||||
|
- id: ruff
|
||||||
|
name: ruff (lint imports)
|
||||||
|
args: ['--fix', '--select=I']
|
||||||
|
files: \.py$
|
||||||
|
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: mypy
|
||||||
|
name: mypy (type check)
|
||||||
|
entry: uv run mypy
|
||||||
|
language: system
|
||||||
|
args: ['.']
|
||||||
|
pass_filenames: false
|
||||||
|
|
||||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||||
rev: v4.0.0-alpha.8
|
rev: v4.0.0-alpha.8
|
||||||
hooks:
|
hooks:
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
.direnv/
|
|
||||||
43
flake.lock
generated
43
flake.lock
generated
|
|
@ -1,43 +0,0 @@
|
||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1771423170,
|
|
||||||
"narHash": "sha256-K7Dg9TQ0mOcAtWTO/FX/FaprtWQ8BmEXTpLIaNRhEwU=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "bcc4a9d9533c033d806a46b37dc444f9b0da49dd",
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
33
flake.nix
33
flake.nix
|
|
@ -1,33 +0,0 @@
|
||||||
{
|
|
||||||
description = "midnight.nvim — a dark colorscheme for Neovim";
|
|
||||||
|
|
||||||
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
|
|
||||||
{
|
|
||||||
formatter = forEachSystem (pkgs: pkgs.nixfmt-tree);
|
|
||||||
|
|
||||||
devShells = forEachSystem (pkgs: {
|
|
||||||
default = pkgs.mkShell {
|
|
||||||
packages = [
|
|
||||||
pkgs.prettier
|
|
||||||
pkgs.stylua
|
|
||||||
pkgs.selene
|
|
||||||
pkgs.lua-language-server
|
|
||||||
];
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +1,7 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local loading = false
|
|
||||||
|
|
||||||
---@return nil
|
---@return nil
|
||||||
function M.load()
|
function M.load()
|
||||||
if loading then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
loading = true
|
|
||||||
|
|
||||||
if vim.g.colors_name then
|
if vim.g.colors_name then
|
||||||
vim.cmd('hi clear')
|
vim.cmd('hi clear')
|
||||||
end
|
end
|
||||||
|
|
@ -22,21 +15,6 @@ function M.load()
|
||||||
|
|
||||||
local theme = require('midnight.theme')
|
local theme = require('midnight.theme')
|
||||||
theme.apply()
|
theme.apply()
|
||||||
|
|
||||||
loading = false
|
|
||||||
end
|
|
||||||
|
|
||||||
---@deprecated Use `vim.cmd('colorscheme midnight')` instead
|
|
||||||
function M.setup(_opts)
|
|
||||||
vim.deprecate(
|
|
||||||
'require("midnight").setup()',
|
|
||||||
'vim.cmd("colorscheme midnight")',
|
|
||||||
'v0.1.0',
|
|
||||||
'midnight.nvim',
|
|
||||||
false
|
|
||||||
)
|
|
||||||
|
|
||||||
M.load()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -121,13 +121,9 @@ function M.apply()
|
||||||
|
|
||||||
hi('@variable', { none = true })
|
hi('@variable', { none = true })
|
||||||
|
|
||||||
hi('Pmenu', { fg = cs.background, bg = cs.foreground }, { 'PmenuSbar' })
|
hi('Pmenu', { bg = cs.dark_grey }, { 'PmenuSbar' })
|
||||||
hi('PmenuSel', { bg = cs.med_grey })
|
hi('PmenuSel', { bg = cs.med_grey })
|
||||||
hi('PmenuThumb', { bg = cs.grey })
|
hi('PmenuThumb', { bg = cs.grey })
|
||||||
hi('BlinkCmpMenu', { fg = cs.background, bg = cs.foreground })
|
|
||||||
hi('BlinkCmpMenuBorder', { fg = cs.background, bg = cs.foreground })
|
|
||||||
hi('BlinkCmpDoc', { fg = cs.background, bg = cs.foreground })
|
|
||||||
hi('BlinkCmpDocBorder', { fg = cs.background, bg = cs.foreground })
|
|
||||||
|
|
||||||
hi('LspInlayHint', { fg = cs.light_black })
|
hi('LspInlayHint', { fg = cs.light_black })
|
||||||
hi('LspSignatureActiveParameter', { underline = true, italic = true })
|
hi('LspSignatureActiveParameter', { underline = true, italic = true })
|
||||||
|
|
@ -149,13 +145,7 @@ function M.apply()
|
||||||
|
|
||||||
hi('gitCommitSummary', { fg = cs.background })
|
hi('gitCommitSummary', { fg = cs.background })
|
||||||
|
|
||||||
hi('@attribute.diff', { fg = cs.blue })
|
hi('@attribute.diff', { fg = cs.background })
|
||||||
hi('@diff.minus', { fg = cs.red })
|
|
||||||
hi('@diff.plus', { fg = cs.green })
|
|
||||||
hi('@diff.delta', { fg = cs.blue })
|
|
||||||
hi('@punctuation.special.diff', { fg = cs.blue })
|
|
||||||
|
|
||||||
link('Normal', { '@string.special.path', '@variable.parameter' })
|
|
||||||
hi('DiffAdd', { bg = cs.diff_add, fg = cs.green }, { '@text.diff.add', 'diffAdded' })
|
hi('DiffAdd', { bg = cs.diff_add, fg = cs.green }, { '@text.diff.add', 'diffAdded' })
|
||||||
hi('DiffDelete', { bg = cs.diff_delete, fg = cs.red }, { '@text.diff.delete', 'diffRemoved' })
|
hi('DiffDelete', { bg = cs.diff_delete, fg = cs.red }, { '@text.diff.delete', 'diffRemoved' })
|
||||||
hi('DiffChange', { bg = cs.diff_change, fg = cs.blue })
|
hi('DiffChange', { bg = cs.diff_change, fg = cs.blue })
|
||||||
|
|
@ -169,12 +159,10 @@ function M.apply()
|
||||||
hi('@constructor.lua', { fg = cs.background })
|
hi('@constructor.lua', { fg = cs.background })
|
||||||
hi('@markup.heading.gitcommit', { none = true })
|
hi('@markup.heading.gitcommit', { none = true })
|
||||||
|
|
||||||
hi('@function.latex', { fg = cs.blue })
|
|
||||||
|
|
||||||
hi('GitSignsCurrentLineBlame', { italic = true, fg = cs.light_black })
|
hi('GitSignsCurrentLineBlame', { italic = true, fg = cs.light_black })
|
||||||
hi('GitSignsAdd', { fg = cs.green })
|
link('DiffAdd', 'GitSignsAdd')
|
||||||
hi('GitSignsChange', { fg = cs.blue })
|
link('DiffChange', 'GitSignsChange')
|
||||||
hi('GitSignsDelete', { fg = cs.red })
|
link('DiffDelete', 'GitSignsDelete')
|
||||||
|
|
||||||
link('Search', 'HighlightUndo')
|
link('Search', 'HighlightUndo')
|
||||||
|
|
||||||
|
|
@ -183,23 +171,6 @@ function M.apply()
|
||||||
hi('CmpItemAbbr', { fg = cs.background })
|
hi('CmpItemAbbr', { fg = cs.background })
|
||||||
hi('CmpItemAbbrMatch', { fg = cs.background, bold = true })
|
hi('CmpItemAbbrMatch', { fg = cs.background, bold = true })
|
||||||
hi('CmpItemAbbrMatchFuzzy', { fg = cs.background, bold = true })
|
hi('CmpItemAbbrMatchFuzzy', { fg = cs.background, bold = true })
|
||||||
hi('BlinkCmpLabelMatch', { fg = cs.green })
|
|
||||||
hi('BlinkCmpGhostText', { fg = cs.light_black })
|
|
||||||
hi('BlinkCmpGitKindMR', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindPR', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindIssue', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindCommit', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindMention', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindIconMR', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindIconPR', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindIconIssue', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindIconCommit', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitKindIconMention', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitLabelMRId', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitLabelPRId', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitLabelIssueId', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitLabelCommitId', { fg = cs.magenta })
|
|
||||||
hi('BlinkCmpGitLabelMentionId', { fg = cs.magenta })
|
|
||||||
hi('CmpItemAbbrDeprecated', { fg = cs.light_black, strikethrough = true })
|
hi('CmpItemAbbrDeprecated', { fg = cs.light_black, strikethrough = true })
|
||||||
hi('CmpItemMenu', { fg = cs.light_black })
|
hi('CmpItemMenu', { fg = cs.light_black })
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
nix develop --command stylua --check .
|
|
||||||
git ls-files '*.lua' | xargs nix develop --command selene --display-style quiet
|
|
||||||
nix develop --command prettier --check .
|
|
||||||
nix fmt
|
|
||||||
git diff --exit-code -- '*.nix'
|
|
||||||
nix develop --command lua-language-server --check . --checklevel=Warning
|
|
||||||
|
|
@ -1,4 +1 @@
|
||||||
std = 'vim'
|
std = 'vim'
|
||||||
|
|
||||||
[lints]
|
|
||||||
bad_string_escape = 'allow'
|
|
||||||
|
|
|
||||||
30
vim.toml
Normal file
30
vim.toml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
[selene]
|
||||||
|
base = "lua51"
|
||||||
|
name = "vim"
|
||||||
|
|
||||||
|
[vim]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[jit]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[assert]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[describe]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[it]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[before_each]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[after_each]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[spy]
|
||||||
|
any = true
|
||||||
|
|
||||||
|
[stub]
|
||||||
|
any = true
|
||||||
26
vim.yaml
26
vim.yaml
|
|
@ -1,26 +0,0 @@
|
||||||
---
|
|
||||||
base: lua51
|
|
||||||
name: vim
|
|
||||||
lua_versions:
|
|
||||||
- luajit
|
|
||||||
globals:
|
|
||||||
vim:
|
|
||||||
any: true
|
|
||||||
jit:
|
|
||||||
any: true
|
|
||||||
assert:
|
|
||||||
any: true
|
|
||||||
describe:
|
|
||||||
any: true
|
|
||||||
it:
|
|
||||||
any: true
|
|
||||||
before_each:
|
|
||||||
any: true
|
|
||||||
after_each:
|
|
||||||
any: true
|
|
||||||
spy:
|
|
||||||
any: true
|
|
||||||
stub:
|
|
||||||
any: true
|
|
||||||
bit:
|
|
||||||
any: true
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue