affogato_editor 0.3.0
affogato_editor: ^0.3.0 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.
Note
The project is currently in pre-release stage. Feel free to depend on it, but be forewarned that the functionality is very limited right now. I am working to build out features rapidly, and the milestones page should give you a rough gauge of when certain features will be complete.
Documentation #
While you can find the API documentation on the package page, you might be better served with the more user-friendly, not incomplete, and up-to-date documentation here.
Features #
This is an outline of the features in this version. For a full list of features (both existing and planned), you may visit the milestones page of the repo.
Warning
Experimental features are subject to drastic changes, and dependent projects should not rely on those features until they reach a stable release.
Warning
Here's a disclaimer that is going be either really relatable or really concerning: The features listed below are not tested systematically. Instead, all I do before pushing out a new release is a manual check that existing features are working. I honestly don't have the time or effort to expend on writing tests, at least not right now when the codebase is relatively small and predictable. If YOLO-ing releases into production isn't really your jam, then please reconsider depending on this package for now. Alternatively, you can email me directly (obsidian.infinitum@gmail.com) to request for better test coverage, and I'll definitely get down to it if there is sufficient demand for it.
Core Editor Functionality #
- UI that somewhat resembles VS Code
- Directory tree with icons and indent guides
- Interactions with buttons on directory tree are highly unstable
- Loading files: programmatic (no uploads/downloads supported yet)
- Modifying file content with autosave
- Multi-pane support: open multiple files at once
- Drag-and-drop to create new panes and move files between panes
- Can't remove panes yet
- Line numbers
- Breadcrumbs
- Bracket/quote matching
- Automatic indentation
IDE Functionality #
- Basic language-specific highlighting
- Search, search-and-replace
- Basic completions menu based on words used in document
Customisation and Extensibility #
- Custom theme support
- Save and load workspace state (open panes and documents)
- Rudimentary support for Window, Language, File Manager, Events, and Extensions APIs
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.