nedit-ng is a Qt port of the Nirvana Editor (NEdit) version 5.6. It is intended
to be a drop in replacement for nedit in every practical way, just as on
many systems /usr/bin/vi
is now a symlink to /usr/bin/vim
.
Because it is a true port of the original code, it (at least for now) inherits some (but not all) of the limitations of the original. On the other hand, some aspects have been improved simply by the fact that it is now a Qt application.
Dependency | Version Required |
---|---|
Qt | >= 5.5 |
Boost (Headers Only) | >= 1.35 |
Bison | >= 3.0 |
$ mkdir build
$ cd build
$ cmake ..
$ make
- Text display is still ASCII only (for now).
- Regex engine is the original nedit proprietary implementation. This was kept
for a few reasons:
- NEdit's syntax is slightly non-standard, and I wanted to keep things backwards compatible for now.
- NEdit's syntax highligher has very carefully created regex's which result in things being highlighted in a way that I (and I assume other nedit users) have grown to appreciate. A change in regex engine would likely require a rework on the syntax highlighting algorithm.
- The original highligher has some insider information of the regex implementation which is uses in order to be more efficient. I could fake this information, but at the cost of efficiency.
- Bug fixes! Yes, NEdit 5.6 unfortunately has some bugs, some of which can result in a crash. Where possible, the new code has these fixed.
- Anti-aliased font rendering.
- Modern look and feel.
- Internally, counted strings are used instead of NUL terminated strings. This removes the need to have code that played games with substituting NUL characters mid-stream.
- Use of some C++ containers means many internal size limits are no longer present.
- Code as been reworked using modern C++ techniques using a toolkit with an active developer community, making it significantly easier for contributions to be made by the open source community.
Version 1.0's goal is to be a nearly 1:1 port of the original NEdit. Once that is complete some post 1.0 goals are already planned:
- Cross platform
- Internationalization!
- Python/LUA scripting support in addition to the built-in macro system
- An improved preferences system
- Extensibility though plugins
- Sessions, meaning that you can save and restore an edit session (such as several open tabs)