V2 - Full rewrite of eca-nvim using Fennel#68
Draft
joaopluigi wants to merge 6 commits into
Draft
Conversation
eca-nvim (using Fennel)eca-nvim using Fennel
eca-nvim using Fenneleca-nvim using Fennel
Contributor
There was a problem hiding this comment.
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 updatedmake 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.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.