affogato_editor 0.0.1
affogato_editor: ^0.0.1 copied to clipboard
A feature-rich and extensible code workspace for Flutter Web.
Affogato Editor #
Finally, the powerful, extensible, and beautiful code editor workspace that Flutter Web needed.
Features #
This is an outline of Affogato's existing and planned features. The version number indicates the first release where the feature will be made available.
Core Editor Functionality #
| Feature | Sub-Features | Status |
|---|---|---|
| File Operations | Create, Open, Modify, Save | |
| Loading files from local FS via Orca | ||
| Loading files from VC/cloud storage | ||
| File Handling UI | Directory Tree | |
| Setting/Unsetting Active Document | ||
| Drag-and-drop files to move | ||
| Read-only file handling | ||
| Multi-Pane Support | Side-by-side panes | |
| Non-editor panes | ||
| Free resizing and layouting | ||
| Drag-and-drop files into panes | ||
| Status Bar | Current Language | |
| Basic Editor UI | Line numbers | |
| Breadcrumbs | ||
| VC diff indicators (sidebar) | ||
| Keyboard Commands | Custom keybindings to editor actions | |
| Text Editing | Bracket/quote matching | |
| Automatic indentation | ||
| Word wrapping | ||
| Code folding |
IDE Functionality #
| Feature | Sub-Features | Status |
|---|---|---|
| Syntax Highlighting | Markdown | |
| Generic (HighlightJS) | ||
| Custom Affogato Language Bundle | ||
| Advanced Text Editing | Search-and-replace | |
| Multi-file search | ||
| Static Analysis | Semantic Highlighting | |
| Error Formatting UI | ||
| Linting | ||
| Language Server Protocol Support | ||
| Multi-caret editing | ||
| Code Execution | Intergated Terminal | |
| Multi-shell support | ||
| Shell type customisation | ||
| ANSI support | ||
| Interactive Notebooks | ||
| Version Control | Git commands | |
| Commit history browser | ||
| Merge conflict resolution UI | ||
| Local history for uncomitted files | ||
| File diffing (side-by-side) | ||
| IntelliSense | Inline suggestions UI | |
| Docstrings/basic suggestions | ||
| Snippets/user-defined shortcuts | ||
| Command Palette | ||
| Debugger | ||
| Refactoring | ||
| Real-Time Collaboration |
Customisation and Extensibility #
| Feature | Sub-Features | Status |
|---|---|---|
| Configuration and Customisation | Styling configs | |
| Performance configs | ||
| Workspace configs and layout saving | ||
| Session persistence | ||
| Affogato theme bundle | ||
| User-defined widgets | ||
| Extensibility | 3rd-party extensions/plugins marketplace | |
| Extension management | ||
| Window API | ||
| Languages API | ||
| File Manager API | ||
| Extensions API | ||
| Events API |
Warning
Experimental features are subject to drastic changes, and dependent projects should not rely on those features until they reach a stable release.
Acknowledgements #
The Affogato Project is an open-source project that would not have been possible without the invaluable and selfless contributions of the open-source community:
- Much love and respect to the Reqable project for:
-
the
re_highlightsubmodule which contains HighlightJS syntax highlighting rules rewritten in Dart. -
the amazing work on their own high-performance code editor,
re_editor, which, as I have come to realise, is an ambitious undertaking
-
- Many thanks to the open-source Seti UI Theme which maintains the icons used by the file explorers in VSCode and other editors.
- and to the FlutterIcon tool for helping convert the SVG icons to TTF files that can be imported into Flutter and used as
IconData.