CudaText is an [[MPLv2]] licensed [[Code Editor|Code]] [[Editor]] written in [[Pascal#Lazarus|Lazarus Free Pascal]]. - [Website](https://cudatext.github.io/) - [Source](https://github.com/Alexey-T/CudaText) - [Documentation](https://wiki.freepascal.org/CudaText) > CudaText is a cross-platform text editor, written in Object Pascal. It is open source project and can be used free of charge, even for business. It starts quite fast: ~0.3 sec with ~30 plugins, on Linux on CPU Intel Core i3 3GHz. It is extensible by Python add-ons: plugins, linters, code tree parsers, external tools. \- official website # Notability A particularly clean, fast, powerful, native (non-web-based) editor. # Philosophy ## Origin Direct descendant of discontinued Windows-only editor SynWrite,[^2], many of the internals still bear its mark. ## Dependencies Built using several interesting dependencies. ### EControl Syntax Editor SDK The lexer engine (for syntax highlighting) is based on the EControl Syntax Editor SDK.[^1] The developers of CudaText obtained permission to open source EControl's engine, and have added additional features. However, this creates a problem, because the engine does not include support for [[#Syntax Editor|editing lexers]]. The EControl website is offline, and seems unlikely to return. It did include a dedicated lexer editor when it was available, but it may not support all of CudaText's features. # Platform Support Supports just about every modern desktop OS available. - Linux ([[QT]] & [[GTK]] versions,[^4] requires `pylib` for plugin support) - [[AMD64]] - [[ARM]] - [[ARM64|AARCH64]] - macOS (semi-unofficial(?) builds, manual [[Python]] install required for plugin support) - [[ARM64|AARCH64]] - [[AMD64]] - Windows - [[IA-32]] (i386) - [[AMD64]] macOS builds *are* provided by the official download site,[^3] despite the official website saying that they are unofficial. ## Unofficial Builds Or builds available only in their own ports repo, not via the developers'. - FreeBSD - OpenBSD - NetBSD - DragonflyBSD - Solaris - Haiku (unofficial builds) ## Syntax Editor CudaText does not support creating new or editing existing syntax highlighting lexers. You must use the old Windows-only SynWrite program, or a dedicated editor program[^5] derived from it, presumably because it requires features only available in the closed-source portion of the [[#EControl Syntax Editor SDK|SDK]]. They claim that it runs great in [[WINE]]. # Features - supports files of "unlimited size" (tested with 10Gb log files) - may not support syntax highlighting! - hex / binary viewing - doesn't mangle binary files - window splits and tabs - regex search and replace - overview / minimap - multi-input and multi-selection - command palette ## Plugins CudaText supports plugins written in [[Python]]. ## Missing Features No configuration UI. Settings must be edited by hand in JSON. There is a theme editor, but it is just a wall of names and color patches. No way to load preset themes that I noticed. # Tips ## Linux Installation If you download an official QT package, it will likely not run. This is due to it having a dynamic dependency on a library of [[QT]] Pascal bindings. Installing it allows the editor to run: ```sh sudo eopkg install qt6pas ``` It's also not very smart about finding `libpython`. If you already have [[Python]] installed and it still reports not finding it, then search `/usr/lib` for an `.so` file starting with `libpython3`: ```sh cd /usr/lib fd 'libpython3.*\.so' ``` Then to enable plugins you will probably need to edit the [[JSON]]-formatted configuration file to specify the proper name you found above: ```json "pylib__linux": "libpython3.12.so.1.0", ``` # Resources ## Themes - https://sourceforge.net/projects/cudatext/files/addons/themes/ # References [^1]: https://web.archive.org/web/20200127013844/http://www.econtrol.ru/ [^2]: https://cudatext.github.io/synwrite/ [^3]: https://sourceforge.net/projects/cudatext/files/release/1.234.0.2/ [^4]: [[QT]] 5 and/or 6 as well as [[GTK]] 2 and/or 3 may be available depending on the architecture [^5]: https://sourceforge.net/projects/cudatext/files/addons/lexer_editor_program/