Notepad++ And Scintilla
Notepad++ is a graphical application that relies, like any application, on controls. Controls are elementary blocks in a graphic user interface. Scroll bars, text fields, buttons, all these and many more are controls.
One control of crucial importance for Notepad++ is the Scintilla control. This is like a stock RichEdit control - the one you find in vintage Notepad -, but with a much expanded set of functionality related to code editing, like syntax highlighting and code folding. The visual areas where you write text, search for text, fold text are displayed by Scintilla controls (one per view).
The Scintilla project is another open source project, found at http://www.scintilla.org. The project is completely independent of Notepad++, and Notepad++ is yet another consumer of Scintilla.
This is a core design decision, a departure from which is not realistic. It has big advantages and disadvantages:
- Whenever the Scintilla component fixes bugs or adds functionality, it is enough for a release of Notepad++ to include it, and the goodies flow in without any development work from the Notepad++ team. And we benefit from the testing pool the Scintilla project has.
- If Scintilla has limitations the developers of Scintilla assign low priority to, Notepad++ is usually stuck with them. Workarounds are usually far from trivial, when there is any.
It is assumed that the former point far outweighs the latter.