Emerald Editor Discussion
September 25, 2017, 12:41:46 pm *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
   Home   Help Search Login Register  
Pages: [1]
Author Topic: Scintilla for code editing component  (Read 5619 times)
0 Members and 1 Guest are viewing this topic.
Posts: 1

« on: February 22, 2007, 04:18:08 pm »

If the plan is to do a complete rewrite and not use the existing CE code, then I think using Scintilla http://www.scintilla.org/ might make a lot of sense.

  • Scintilla has a very flexible license which is absolutely GPL compatible.
  • Scintilla is intended to be used as code editing component in a text editor.
  • Scintilla has already implemented a good number of impressive features (just copying and pasting from sourceforge project page): syntax styling, error indicators, code completion, folding, breakpoints.
    Take a look at the wikipedia page which describes it a little more.
  • Scintilla is one of the biggest sourceforge projects http://sourceforge.net/projects/scintilla/.  There are a lot of developers working on it (including developers working on other text editors which use Scintilla).
    If you take a look at the wikipedia page for Scintilla, it lists some editors in which Scintilla is used.  They are some of the most popular open source editors.  There are a lot of developers on these projects.  Developers whose work we can leverage.
    By using Scintilla, we can quickly implement the basic, necessary features of a text editor and focus on the features which define a "CE-esque" experience.
  • Syntax files: A major benefit of using Scintilla is that there are a lot of lexers for many languages already available.  The fact that Scintilla based editors are so popular means that there will always be lexers available and they will be updated frequently with language changes and when new languages appear.  This is also a phenomenal benefit.
  • Provides part of a working framework.  On a distributed project like this, having a well-defined API/framework is valuable.  It means that several people can work on various components, all while interacting with at least some well defined interfaces.
    If I were writing a feature which does a dictionary lookup on a highlighted word, I don't need to wait for someone to design a "highlighted word" method call and then document it.  Instead, I can use Scintilla's well defined APIs and find out which word is highlighted.
    Or maybe I want to create a dialog to change how syntax highlighting appears.  I don't have to wait for someone to design a syntax highlighting framework.  There is already a well defined syntax highlighting framework in Scintilla.
  • Having this type of large "jointly accepted" framework makes development much easier.  More importantly, it allows multiple people to work on the project simultaneously (and immediately).  I'm sure that we will develop some of our own internal interfaces eventually.  But, having one large common interface from the beginning is invaluable as it means everyone can get started immediately.

Using Scintilla, EE has a much smaller hill to climb in order to achieve wide popularity and to produce a polished product.  People don't have to worry if EE supports all of their languages: it does, because there are so many lexers already available!  And as I noted above, development time (and future maintenance) is significantly reduced because of all of the strengths the Scintilla community brings to the table.

I've rattled off a long list of reasons why I think Scintilla makes sense.  I personally love CE, and EE is a great concept which I'm sure can be better realized using the strengths of good tools which already exist.  I hope the project leaders agree with me and we follow this path.

« Last Edit: February 23, 2007, 06:01:36 pm by DanHS » Logged
Master Jeweller
Posts: 427

« Reply #1 on: February 24, 2007, 06:48:20 pm »

I moved this to this board from the CE development board as it has to do with Emerald development instead of Crimson development.

But, I think we are planning on using scintilla. Probably the main issue will be the amount of customization that will have to go into it to make it more CE-like.

Pages: [1]
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.08 seconds with 18 queries.