Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d89c48d017 | ||
|
|
4e4a8c886b |
No files matched your search
@@ -80,9 +80,9 @@ coherent commit before starting unrelated work.
|
|||||||
Lualine uses native Kulala environment and Dadbod connection/timing components.
|
Lualine uses native Kulala environment and Dadbod connection/timing components.
|
||||||
These indicators are not access controls.
|
These indicators are not access controls.
|
||||||
- **Editor ergonomics:** word-boundary wrapping, count-aware displayed-line `j/k`
|
- **Editor ergonomics:** word-boundary wrapping, count-aware displayed-line `j/k`
|
||||||
in ordinary normal/visual buffers, and Blink Escape cancellation. The existing
|
in ordinary normal/visual buffers, and default Escape behavior to leave insert
|
||||||
`tests/neovim-ergonomics.lua` is retained; earlier smoke-check evidence is in the
|
mode. The Neovim smoke tests were removed; earlier smoke-check evidence is in
|
||||||
archived plan, with interactive preview restoration/visual behavior unproven.
|
the archived plan.
|
||||||
- **Agents:** Herdr is selected; agent-deck and tmux remain installed alongside it.
|
- **Agents:** Herdr is selected; agent-deck and tmux remain installed alongside it.
|
||||||
Codex has agent-deck notifications and hooks enabled. Shared Context7/NixOS skills
|
Codex has agent-deck notifications and hooks enabled. Shared Context7/NixOS skills
|
||||||
live under `.agents/skills`.
|
live under `.agents/skills`.
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ require("lz.n").load({
|
|||||||
after = function()
|
after = function()
|
||||||
require("blink.cmp").setup({
|
require("blink.cmp").setup({
|
||||||
keymap = {
|
keymap = {
|
||||||
["<Esc>"] = { "cancel", "fallback" },
|
|
||||||
["<C-j>"] = { "select_next", "fallback" },
|
["<C-j>"] = { "select_next", "fallback" },
|
||||||
["<C-k>"] = { "select_prev", "fallback" },
|
["<C-k>"] = { "select_prev", "fallback" },
|
||||||
["<Tab>"] = { "select_and_accept", "fallback" },
|
["<Tab>"] = { "select_and_accept", "fallback" },
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
vim.diagnostic.config({
|
vim.diagnostic.config({
|
||||||
|
virtual_text = true,
|
||||||
signs = {
|
signs = {
|
||||||
text = {
|
text = {
|
||||||
[vim.diagnostic.severity.ERROR] = " ",
|
[vim.diagnostic.severity.ERROR] = " ",
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
-- Configured startup: nvim --headless -i NONE '+lua local ok,e=pcall(dofile,"tests/neovim-ergonomics.lua"); if not ok then print(e); vim.cmd.cquit() end' '+qa!'
|
|
||||||
assert(vim.o.linebreak)
|
|
||||||
vim.api.nvim_buf_set_lines(0, 0, -1, false, { string.rep("word ", 80), "two", "three", "four" })
|
|
||||||
vim.cmd("normal gg0j")
|
|
||||||
assert(vim.fn.line(".") == 1 and vim.fn.col(".") > 1)
|
|
||||||
vim.cmd("normal k")
|
|
||||||
assert(vim.fn.line(".") == 1 and vim.fn.col(".") == 1)
|
|
||||||
vim.cmd("normal 3j")
|
|
||||||
assert(vim.fn.line(".") == 4)
|
|
||||||
vim.cmd("normal 3k")
|
|
||||||
assert(vim.fn.line(".") == 1)
|
|
||||||
assert(vim.fn.maparg("j", "o") == "")
|
|
||||||
vim.bo.buftype = "nofile"
|
|
||||||
vim.cmd("normal j")
|
|
||||||
assert(vim.fn.line(".") == 2)
|
|
||||||
vim.cmd("doautocmd InsertEnter")
|
|
||||||
assert(vim.deep_equal(require("blink.cmp.config").keymap["<Esc>"], { "cancel", "fallback" }))
|
|
||||||
print("Neovim motion and completion configuration smoke check passed")
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
-- Run with the configured Neovim, using the same headless invocation as neovim-ergonomics.lua.
|
|
||||||
assert(package.loaded["diffview"] == nil, "Diffview should load on demand")
|
|
||||||
vim.cmd("doautocmd VimEnter")
|
|
||||||
local root = vim.fn.tempname() .. " review"
|
|
||||||
vim.fn.mkdir(root, "p")
|
|
||||||
local function git(...)
|
|
||||||
local result = vim.system({ "git", "-C", root, ... }, { text = true }):wait()
|
|
||||||
assert(result.code == 0, result.stderr)
|
|
||||||
end
|
|
||||||
local file = root .. "/tracked.txt"
|
|
||||||
git("init", "--quiet")
|
|
||||||
vim.fn.writefile({ "original" }, file)
|
|
||||||
git("add", ".")
|
|
||||||
git("-c", "user.name=Review Test", "-c", "[email protected]", "commit", "--quiet", "-m", "Baseline")
|
|
||||||
vim.cmd.edit(vim.fn.fnameescape(file))
|
|
||||||
assert(
|
|
||||||
vim.wait(5000, function()
|
|
||||||
return vim.fn.maparg(" gs", "n") ~= ""
|
|
||||||
end),
|
|
||||||
"Gitsigns should attach to the tracked file"
|
|
||||||
)
|
|
||||||
|
|
||||||
vim.fn.writefile({ "staged change" }, file)
|
|
||||||
git("add", "tracked.txt")
|
|
||||||
vim.fn.writefile({ "unstaged change after staging" }, file)
|
|
||||||
vim.fn.writefile({ "new file" }, root .. "/untracked.txt")
|
|
||||||
vim.api.nvim_exec_autocmds("FocusGained", { modeline = false })
|
|
||||||
vim.api.nvim_feedkeys(" gd", "xt", false)
|
|
||||||
assert(package.loaded["diffview"] ~= nil, "Review shortcut should load Diffview")
|
|
||||||
local view = require("diffview.lib").get_current_view()
|
|
||||||
assert(view, "Review shortcut should open a view even when cwd is outside the repository")
|
|
||||||
assert(
|
|
||||||
vim.wait(5000, function()
|
|
||||||
return #view.files.working == 2 and #view.files.staged == 1 and view.cur_entry and view.cur_entry.opened
|
|
||||||
end),
|
|
||||||
"Review should include the tracked and untracked files"
|
|
||||||
)
|
|
||||||
local refreshed = false
|
|
||||||
view.emitter:on("file_open_post", function()
|
|
||||||
refreshed = true
|
|
||||||
end)
|
|
||||||
vim.cmd("DiffviewRefresh")
|
|
||||||
assert(
|
|
||||||
vim.wait(5000, function()
|
|
||||||
return refreshed
|
|
||||||
end),
|
|
||||||
"Refresh should finish before closing the view"
|
|
||||||
)
|
|
||||||
vim.cmd("DiffviewClose")
|
|
||||||
assert(require("diffview.lib").get_current_view() == nil)
|
|
||||||
vim.cmd("%bwipeout!")
|
|
||||||
vim.fn.delete(root, "rf")
|
|
||||||
print("Neovim agent review smoke check passed")
|
|
||||||
Reference in new issue
Block a user