Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


Hey,

please don't add stuff to the GSoC page unless you are going to mentor
them. The list is not an idea page for community members, but a list that
mentors put together as ideas for the students.

There are many more good ideas that mentors so please file them as
enhancement in bugzilla.


Regards,
Markus


On Sat, Feb 7, 2015 at 4:17 AM, John LeMoyne Castle <
lemoyne.castle@gmail.com> wrote:

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.
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.