Compare commits
10 commits
feat/trees
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 26fb9ca518 | |||
| 6b1ba1f056 | |||
| af0a44bec8 | |||
| f52dd06c26 | |||
| 7891879b4e | |||
| 638a9e65f3 | |||
| fc03b940de | |||
| 130a1899c2 | |||
| 9ff64a7b89 | |||
|
|
b496f26e29 |
12 changed files with 166 additions and 57 deletions
29
.github/workflows/quality.yaml
vendored
29
.github/workflows/quality.yaml
vendored
|
|
@ -24,6 +24,7 @@ jobs:
|
||||||
- '*.lua'
|
- '*.lua'
|
||||||
- '.luarc.json'
|
- '.luarc.json'
|
||||||
- '*.toml'
|
- '*.toml'
|
||||||
|
- 'vim.yaml'
|
||||||
markdown:
|
markdown:
|
||||||
- '*.md'
|
- '*.md'
|
||||||
|
|
||||||
|
|
@ -34,11 +35,8 @@ jobs:
|
||||||
if: ${{ needs.changes.outputs.lua == 'true' }}
|
if: ${{ needs.changes.outputs.lua == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: JohnnyMorganz/stylua-action@v4
|
- uses: cachix/install-nix-action@v31
|
||||||
with:
|
- run: nix develop --command stylua --check .
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
version: 2.1.0
|
|
||||||
args: --check .
|
|
||||||
|
|
||||||
lua-lint:
|
lua-lint:
|
||||||
name: Lua Lint Check
|
name: Lua Lint Check
|
||||||
|
|
@ -47,11 +45,8 @@ jobs:
|
||||||
if: ${{ needs.changes.outputs.lua == 'true' }}
|
if: ${{ needs.changes.outputs.lua == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Lint with Selene
|
- uses: cachix/install-nix-action@v31
|
||||||
uses: NTBBloodbath/selene-action@v1.0.0
|
- run: nix develop --command selene --display-style quiet .
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
args: --display-style quiet .
|
|
||||||
|
|
||||||
lua-typecheck:
|
lua-typecheck:
|
||||||
name: Lua Type Check
|
name: Lua Type Check
|
||||||
|
|
@ -74,15 +69,5 @@ jobs:
|
||||||
if: ${{ needs.changes.outputs.markdown == 'true' }}
|
if: ${{ needs.changes.outputs.markdown == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup pnpm
|
- uses: cachix/install-nix-action@v31
|
||||||
uses: pnpm/action-setup@v4
|
- run: nix develop --command prettier --check .
|
||||||
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,3 +8,6 @@ venv/
|
||||||
CLAUDE.md
|
CLAUDE.md
|
||||||
__pycache__
|
__pycache__
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
|
.direnv/
|
||||||
|
.envrc
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
{
|
{
|
||||||
"runtime.version": "Lua 5.1",
|
"runtime.version": "LuaJIT",
|
||||||
"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"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
.styluaignore
Normal file
1
.styluaignore
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
.direnv/
|
||||||
43
flake.lock
generated
Normal file
43
flake.lock
generated
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
"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
Normal file
33
flake.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
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,7 +1,14 @@
|
||||||
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
|
||||||
|
|
@ -15,6 +22,8 @@ function M.load()
|
||||||
|
|
||||||
local theme = require('midnight.theme')
|
local theme = require('midnight.theme')
|
||||||
theme.apply()
|
theme.apply()
|
||||||
|
|
||||||
|
loading = false
|
||||||
end
|
end
|
||||||
|
|
||||||
---@deprecated Use `vim.cmd('colorscheme midnight')` instead
|
---@deprecated Use `vim.cmd('colorscheme midnight')` instead
|
||||||
|
|
|
||||||
|
|
@ -121,9 +121,13 @@ function M.apply()
|
||||||
|
|
||||||
hi('@variable', { none = true })
|
hi('@variable', { none = true })
|
||||||
|
|
||||||
hi('Pmenu', { bg = cs.dark_grey }, { 'PmenuSbar' })
|
hi('Pmenu', { fg = cs.background, bg = cs.foreground }, { '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 })
|
||||||
|
|
@ -148,6 +152,9 @@ function M.apply()
|
||||||
hi('@attribute.diff', { fg = cs.blue })
|
hi('@attribute.diff', { fg = cs.blue })
|
||||||
hi('@diff.minus', { fg = cs.red })
|
hi('@diff.minus', { fg = cs.red })
|
||||||
hi('@diff.plus', { fg = cs.green })
|
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' })
|
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' })
|
||||||
|
|
@ -162,10 +169,12 @@ 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 })
|
||||||
link('DiffAdd', 'GitSignsAdd')
|
hi('GitSignsAdd', { fg = cs.green })
|
||||||
link('DiffChange', 'GitSignsChange')
|
hi('GitSignsChange', { fg = cs.blue })
|
||||||
link('DiffDelete', 'GitSignsDelete')
|
hi('GitSignsDelete', { fg = cs.red })
|
||||||
|
|
||||||
link('Search', 'HighlightUndo')
|
link('Search', 'HighlightUndo')
|
||||||
|
|
||||||
|
|
@ -174,6 +183,23 @@ 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 })
|
||||||
|
|
||||||
|
|
|
||||||
9
scripts/ci.sh
Executable file
9
scripts/ci.sh
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/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 +1,4 @@
|
||||||
std = 'vim'
|
std = 'vim'
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
bad_string_escape = 'allow'
|
||||||
|
|
|
||||||
30
vim.toml
30
vim.toml
|
|
@ -1,30 +0,0 @@
|
||||||
[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
Normal file
26
vim.yaml
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
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