{"id":15055951,"url":"https://github.com/andy-goryachev/fxeditor","last_synced_at":"2025-04-10T03:54:35.699Z","repository":{"id":125410967,"uuid":"74805923","full_name":"andy-goryachev/FxEditor","owner":"andy-goryachev","description":"JavaFX rich text editor able to handle billions of lines (WORK IN PROGRESS)","archived":false,"fork":false,"pushed_at":"2025-03-20T15:42:32.000Z","size":4614,"stargazers_count":33,"open_issues_count":2,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T03:54:29.478Z","etag":null,"topics":["handle-billions","java","javafx","javafx-components","javafx-desktop-apps","javafx-gui"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andy-goryachev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-26T05:07:59.000Z","updated_at":"2025-03-20T15:42:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"2fc713d8-708d-4511-84f7-16cdea222946","html_url":"https://github.com/andy-goryachev/FxEditor","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy-goryachev%2FFxEditor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy-goryachev%2FFxEditor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy-goryachev%2FFxEditor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy-goryachev%2FFxEditor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andy-goryachev","download_url":"https://codeload.github.com/andy-goryachev/FxEditor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248154999,"owners_count":21056542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["handle-billions","java","javafx","javafx-components","javafx-desktop-apps","javafx-gui"],"created_at":"2024-09-24T21:47:18.932Z","updated_at":"2025-04-10T03:54:35.683Z","avatar_url":"https://github.com/andy-goryachev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FxEditor\n\n## Announcement\n\n\u003e [!WARNING]\n\u003e This project has been archived.\n\nPlease consider switching to\n[RichTextArea](https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextArea.md)\nincubator module in JavaFX 24\n\n- [RichTextArea.md](https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextArea.md)\n- [JDK-8301121](https://bugs.openjdk.org/browse/JDK-8301121)\n- [RichTextArea.java](https://github.com/openjdk/jfx/blob/master/modules/jfx.incubator.richtext/src/main/java/jfx/incubator/scene/control/richtext/RichTextArea.java)\n\n\n## Why ##\n\n![screenshot](https://github.com/andy-goryachev/FxEditor/blob/master/doc/screenshot.png)\n\nNearly all Java text editors, Swing and FX alike, suffer from one deficiency: inability to work with large \ndata models, such as logs or query results.\n\nThe goal of this project is to provide a professional FX text component that is capable of handling billions of \nlines, provides syntax highlighting, multiple carets and multiple selection, rich text capabilities,\nembedded images and embedded components.\n\nThe main idea which allows for all these features is separation of the editor and underlying data model.\nThe data model then can be made as simple as a contiguous in-memory byte array, or as complex as memory-mapped \nfile with a concurrent change log that enables editing of a very large files.\n\n\n## Features\n\n* supports up to 2^31 lines of text\n* multiple selection and carets\n* supports syntax highlight\n\n\n## Requirements\n\nRequires JavaFX 21+.\n \n\n## Try It Out ##\n\nThe project is at a very early stage: less than 29% of all \n[identified features](https://github.com/andy-goryachev/FxEditor/blob/master/FxEditor%20Feature%20Matrix.xlsx)\nis currently implemented. \n\nTo see how little is implemented, launch \n[FxEditorApp.java](https://github.com/andy-goryachev/FxEditor/blob/master/src/demo/edit/FxEditorApp.java)\n\n\n\n## Example\n\n```java\npublic class MainWindow extends FxWindow\n{\n\tpublic MainWindow()\n\t{\n\t\tsuper(\"TestFxEditorWindow\");\n\t\tsetTitle(\"FxEditor Demo\");\n\t\tsetSize(600, 700);\n\t\t\n\t\t// data model\n\t\tFxEditorModel m = new TestFxColorEditorModel();\n\t\t// editor component is a Pane\n\t\tFxEditor ed = new FxEditor(m);\n\t\ted.setMultipleSelectionEnabled(true);\n\t\t// add to layout\t\t\n\t\tsetCenter(ed);\n\t}\n}\n```\n\nSee [MainWindow.java](https://github.com/andy-goryachev/FxEditor/blob/master/src/demo/edit/MainWindow.java)\n\n\n\n## Similar Projects\n\n- Tomas Mikula's [RichTextFX](https://github.com/TomasMikula/RichTextFX)\n- Gluon's [Rich Text Area Project](https://github.com/gluonhq/rich-text-area)\n\n\n\n## License\n\nThis project and its source code is licensed under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) and you should feel free to make adaptations of this work. Please see the included LICENSE file for further details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandy-goryachev%2Ffxeditor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandy-goryachev%2Ffxeditor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandy-goryachev%2Ffxeditor/lists"}