GSoC Ideas for Basic

John LeMoyne Castle lemoyne.castle at gmail.com
Fri Feb 6 19:17:15 PST 2015


Apologies, but I am having trouble accessing my wiki account: it has been a
long while. So, I am delivering this via email.  If there is no ESC veto or
rework demand in the next few days I will get these into the GSoC Idea page
even if I have to re-register.   

The lexer idea came from elsewhere (dev or qa list, I think) but immediately
appealed to me after seeing many bugs in the editing functions of the
current BASIC IDE and looking at fixing them.  Similarly the user guide
request is in bugzilla as an enhancement request.  So... 
 
Here are a couple ideas for Libre Office BASIC [*LOB*]:

*Project 1:  BUG - BASIC User's Guide (a dev guide for LOB)
*Starting from outline work up an accurate description and usage samples for
every element of LOB on the TDF Wiki.  Starts with the existing help so is
easy level but is fat book length.  

Offers: Immediate contribution 
Skills: LOB programming, documentation
Results: 
-- Internal: clarity and completeness of LOB & IDE issue reports, 
-- Int/Ext : at least a good start on the BUG as wiki, 
-- External: better user experience, easier transition from MSO/VBA to
LibreOffice

Extra/2nd project:  UNO description/examples in BASIC 
Extra/2nd project:  all examples in Python 


*Project 2:  Lexer and folder for LOB in scintilla
*Get scintilla to understand LOB well enough to support syntax highlighting,
folding, annotation, auto-indent and maybe autocompletion.  The idea is to
bring LOB to scintilla, not to integrate scintilla into current IDE.  The
concept of the lexer is straightforward, but the BASIC syntax is not simple. 
Many elements have alternate forms and usage: Built-ins can be used as
expression or statement; Arrays have option base, dim and redim, Array() and
issues as function argument; There is VBA support (or not); Etc.  Each
element treated by the lexer could use one or more of 1) syntax highlighting
of correct form, 2) error/warn on incorrect or risky usage, 3)
hint/suggested fix [annotation].  Autoindent and autocompletion could be
implemented within (or more properly alongside?) the lexer/folder.  

Wrapping the editor as a useful extension would require delving into the
integration issues around loading and saving Basic from odt/ods documents. 
 
Skill Level: Medium 
Offers: experience in developing developer tools
Skills: C++ programming
Results: the best LOB editor ever
-- Internal:  
-- Int/Ext :  wrap the results as an extension
-- External:  code editor extension (& free-standing) 

Extra:  Autocomplete
Extra/2nd project:  UNO support in lexer (introspection)

===== end of GSoc ideas

Context for the 2d project and many more potential projects: 

The overarching idea is to replace the current BASIC only IDE with an open
source multi-language IDE.  
Current IDE is old-school stuff unlike most of LibO: it is fragile and has
few possible maintainers and those that are active are already booked up. 

The open source projects *potentially* added to LibO code base include
scintilla, GTk, Glade, Geany, Anjuta

Fixing the raft of issues with the action of the current IDE is a nice side
effect but is a minor result compared to the amount of effort in integrating
a new IDE .  The project of replacing the whole IDE is far beyond the scope
of GSoC. Consequently, only a few of the sub-projects may produce an
immediately visible effect on LibreOffice like the ones above.

Different paths available:

Path A:  Rebuild existing IDE 
Replace editor with scintilla and move windowing to GTk. 
+ lessens Runtime/IDE integration issues 
-  will still be LOB only 

Path B:  Replace existing IDE with code editor (Geany) and plugins (Glade)
Step-by-step might be the best path ... could also be slowest and most work
- needs to work through ~all Runtime/IDE integration issues to succeed
- needs Glade integration to support dialog boxes 

Path C:  Replace existing IDE with tailored full-featured IDE (Anjuta)
+ minimizes IDE development, so might be fastest path
- needs to work through ~all Runtime/IDE integration issues to succeed
+ could end up with an IDE in LibO that can be used to develop anything,
including LibO




--
View this message in context: http://nabble.documentfoundation.org/GSoC-Ideas-for-Basic-tp4139212.html
Sent from the Dev mailing list archive at Nabble.com.


More information about the LibreOffice mailing list