Skip to content

V2 - Full rewrite of eca-nvim using Fennel#68

Draft
joaopluigi wants to merge 6 commits into
mainfrom
v2
Draft

V2 - Full rewrite of eca-nvim using Fennel#68
joaopluigi wants to merge 6 commits into
mainfrom
v2

Conversation

@joaopluigi
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings May 10, 2026 15:28
@joaopluigi joaopluigi changed the title [V2] - Full rewrite of eca-nvim (using Fennel) [V2] - Full rewrite of eca-nvim using Fennel May 10, 2026
@joaopluigi joaopluigi changed the title [V2] - Full rewrite of eca-nvim using Fennel V2 - Full rewrite of eca-nvim using Fennel May 10, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR begins a V2 rewrite of eca-nvim centered around Fennel via nfnl, removing the previous Lua implementation and switching the test harness to Plenary/Busted.

Changes:

  • Replaced the prior Lua plugin implementation with a new Fennel→Lua (nfnl) compiled codebase scaffold.
  • Reworked dev tooling: added script/nfnl, replaced MiniTest-based tests with Plenary/Busted-based specs, and updated make test.
  • Removed the previous docs, plugin entry files, and a large suite of MiniTest tests.

Reviewed changes

Copilot reviewed 84 out of 88 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/test_utils.lua Removed MiniTest utils tests (legacy implementation).
tests/test_state.lua Removed MiniTest state tests (legacy implementation).
tests/test_sidebar_autoscroll.lua Removed MiniTest sidebar autoscroll tests (legacy implementation).
tests/test_server_picker_commands.lua Removed MiniTest picker command tests (legacy implementation).
tests/test_server_path.lua Removed MiniTest server path tests (legacy implementation).
tests/test_server_integration.lua Removed MiniTest server integration tests (legacy implementation).
tests/test_select_commands.lua Removed MiniTest select command tests (legacy implementation).
tests/test_picker.lua Removed MiniTest picker wrapper tests (legacy implementation).
tests/test_message_handler.lua Removed MiniTest message handler tests (legacy implementation).
tests/test_logging.lua Removed MiniTest logger tests (legacy implementation).
tests/test_highlights.lua Removed MiniTest highlights tests (legacy implementation).
tests/test_editor_diagnostics.lua Removed MiniTest editor diagnostics tests (legacy implementation).
tests/test_eca.lua Removed MiniTest smoke/config tests (legacy implementation).
tests/test_context_commands.lua Removed MiniTest context command tests (legacy implementation).
tests/test_context_area.lua Removed MiniTest context area tests (legacy implementation).
tests/test_chat_id.lua Removed MiniTest chat id lifecycle tests (legacy implementation).
tests/test_chat_clear.lua Removed MiniTest chat clear tests (legacy implementation).
tests/test_approve.lua Removed MiniTest tool approval UI tests (legacy implementation).
tests/stubs/tool_calls.lua Removed MiniTest stubs for tool approval tests.
scripts/server_path.lua Removed legacy helper script used for server path discovery in tests/runtime.
scripts/minimal_init.lua Removed MiniTest-oriented minimal init used for CI tests.
script/test Added Plenary/Busted test runner script.
script/nfnl Added helper script to embed nfnl tooling into the project.
plugin/eca.lua Removed legacy plugin entrypoint that auto-registered commands.
plugin-spec.lua Removed legacy plugin manager specification file.
Makefile Updated test/deps targets to use Plenary and new test script.
lua/spec/nfnl/example_spec.lua Added example Plenary/Busted spec for nfnl core.
lua/eca/utils.lua Removed legacy Lua utilities module.
lua/eca/ui/picker.lua Removed legacy snacks picker wrapper.
lua/eca/types.lua Removed legacy Lua type annotations module.
lua/eca/strings.lua Removed legacy string helper module.
lua/eca/stream_queue.lua Removed legacy stream queue/typewriter implementation.
lua/eca/state.lua Removed legacy state singleton implementation.
lua/eca/server.lua Removed legacy server process + JSON-RPC implementation.
lua/eca/path_finder.lua Removed legacy server path finder/downloader logic.
lua/eca/observer.lua Removed legacy observer pub/sub implementation.
lua/eca/nfnl/string.lua Added nfnl string utilities (generated Lua).
lua/eca/nfnl/repl.lua Added nfnl repl helpers (generated Lua).
lua/eca/nfnl/nvim.lua Added nfnl Neovim helpers (generated Lua).
lua/eca/nfnl/notify.lua Added nfnl notification helpers (generated Lua).
lua/eca/nfnl/module.lua Added nfnl module loader/autoload helpers (generated Lua).
lua/eca/nfnl/init.lua Added nfnl init module (generated Lua).
lua/eca/nfnl/header.lua Added nfnl header tagging helpers (generated Lua).
lua/eca/nfnl/gc.lua Added nfnl orphan detection logic (generated Lua).
lua/eca/nfnl/fs.lua Added nfnl filesystem helpers (generated Lua).
lua/eca/nfnl/config.lua Added nfnl config discovery/loading (generated Lua).
lua/eca/nfnl/compile.lua Added nfnl compilation logic (generated Lua).
lua/eca/nfnl/callback.lua Added nfnl BufWritePost callback wiring (generated Lua).
lua/eca/nfnl/api.lua Added nfnl public API for compile/orphan tasks (generated Lua).
lua/eca/message_handler.lua Removed legacy JSON-RPC message parsing.
lua/eca/mediator.lua Removed legacy mediator layer between UI/state/server.
lua/eca/logger.lua Removed legacy logger implementation.
lua/eca/init.lua Replaced main module with new Fennel-compiled scaffold.
lua/eca/highlights.lua Removed legacy highlight group setup.
lua/eca/editor.lua Removed legacy editor diagnostics request handler.
lua/eca/config.lua Removed legacy configuration module.
lua/eca/completion/context.lua Removed legacy completion (context) implementation.
lua/eca/completion/commands.lua Removed legacy completion (commands) implementation.
lua/eca/completion/cmp/context.lua Removed legacy cmp source for contexts.
lua/eca/completion/cmp/commands.lua Removed legacy cmp source for commands.
lua/eca/completion/blink/context.lua Removed legacy blink.cmp provider for contexts.
lua/eca/completion/blink/commands.lua Removed legacy blink.cmp provider for commands.
lua/eca/approve.lua Removed legacy tool-call approval UI implementation.
lua/eca/api.lua Removed legacy public API surface for chat/contexts/server/logs.
fnl/spec/nfnl/example_spec.fnl Added source Fennel spec for the nfnl example test.
fnl/eca/nfnl/macros/aniseed.fnlm Added Aniseed-derived macro helpers for Fennel workflow.
fnl/eca/nfnl/macros.fnlm Added project macros for Fennel workflow.
fnl/eca/init.fnl Added source Fennel entry module for eca.
docs/usage.md Removed legacy usage documentation.
docs/troubleshooting.md Removed legacy troubleshooting documentation.
docs/installation.md Removed legacy installation documentation.
docs/development.md Removed legacy development documentation.
docs/configuration.md Removed legacy configuration documentation.
after/plugin/eca-nvim.lua Removed legacy completion integration auto-setup.
.nfnl.fnl Added nfnl project configuration.
.luacheckrc Removed luacheck configuration.
.ignore Added ignore rules (currently ignores all Lua).
.gitignore Updated ignore entries.
.gitattributes Added Linguist attributes for generated/vendored Lua.
.editorconfig Removed editorconfig file.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Makefile Outdated
Comment thread script/test Outdated
Comment thread lua/eca/nfnl/api.lua
Comment thread .ignore
Agent-Logs-Url: https://github.com/editor-code-assistant/eca-nvim/sessions/0aef23a1-7a48-48a8-934f-ddf584085bc5

Co-authored-by: joaopluigi <3515913+joaopluigi@users.noreply.github.com>
@joaopluigi joaopluigi marked this pull request as draft May 11, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants