<div dir="ltr"><div><div><div><div>Hey,<br><br></div>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.<br><br></div>There are many more good ideas that mentors so please file them as enhancement in bugzilla.<br><br><br></div>Regards,<br></div>Markus<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Feb 7, 2015 at 4:17 AM, John LeMoyne Castle <span dir="ltr"><<a href="mailto:lemoyne.castle@gmail.com" target="_blank">lemoyne.castle@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Apologies, but I am having trouble accessing my wiki account: it has been a<br>
long while. So, I am delivering this via email.  If there is no ESC veto or<br>
rework demand in the next few days I will get these into the GSoC Idea page<br>
even if I have to re-register.<br>
<br>
The lexer idea came from elsewhere (dev or qa list, I think) but immediately<br>
appealed to me after seeing many bugs in the editing functions of the<br>
current BASIC IDE and looking at fixing them.  Similarly the user guide<br>
request is in bugzilla as an enhancement request.  So...<br>
<br>
Here are a couple ideas for Libre Office BASIC [*LOB*]:<br>
<br>
*Project 1:  BUG - BASIC User's Guide (a dev guide for LOB)<br>
*Starting from outline work up an accurate description and usage samples for<br>
every element of LOB on the TDF Wiki.  Starts with the existing help so is<br>
easy level but is fat book length.<br>
<br>
Offers: Immediate contribution<br>
Skills: LOB programming, documentation<br>
Results:<br>
-- Internal: clarity and completeness of LOB & IDE issue reports,<br>
-- Int/Ext : at least a good start on the BUG as wiki,<br>
-- External: better user experience, easier transition from MSO/VBA to<br>
LibreOffice<br>
<br>
Extra/2nd project:  UNO description/examples in BASIC<br>
Extra/2nd project:  all examples in Python<br>
<br>
<br>
*Project 2:  Lexer and folder for LOB in scintilla<br>
*Get scintilla to understand LOB well enough to support syntax highlighting,<br>
folding, annotation, auto-indent and maybe autocompletion.  The idea is to<br>
bring LOB to scintilla, not to integrate scintilla into current IDE.  The<br>
concept of the lexer is straightforward, but the BASIC syntax is not simple.<br>
Many elements have alternate forms and usage: Built-ins can be used as<br>
expression or statement; Arrays have option base, dim and redim, Array() and<br>
issues as function argument; There is VBA support (or not); Etc.  Each<br>
element treated by the lexer could use one or more of 1) syntax highlighting<br>
of correct form, 2) error/warn on incorrect or risky usage, 3)<br>
hint/suggested fix [annotation].  Autoindent and autocompletion could be<br>
implemented within (or more properly alongside?) the lexer/folder.<br>
<br>
Wrapping the editor as a useful extension would require delving into the<br>
integration issues around loading and saving Basic from odt/ods documents.<br>
<br>
Skill Level: Medium<br>
Offers: experience in developing developer tools<br>
Skills: C++ programming<br>
Results: the best LOB editor ever<br>
-- Internal:<br>
-- Int/Ext :  wrap the results as an extension<br>
-- External:  code editor extension (& free-standing)<br>
<br>
Extra:  Autocomplete<br>
Extra/2nd project:  UNO support in lexer (introspection)<br>
<br>
===== end of GSoc ideas<br>
<br>
Context for the 2d project and many more potential projects:<br>
<br>
The overarching idea is to replace the current BASIC only IDE with an open<br>
source multi-language IDE.<br>
Current IDE is old-school stuff unlike most of LibO: it is fragile and has<br>
few possible maintainers and those that are active are already booked up.<br>
<br>
The open source projects *potentially* added to LibO code base include<br>
scintilla, GTk, Glade, Geany, Anjuta<br>
<br>
Fixing the raft of issues with the action of the current IDE is a nice side<br>
effect but is a minor result compared to the amount of effort in integrating<br>
a new IDE .  The project of replacing the whole IDE is far beyond the scope<br>
of GSoC. Consequently, only a few of the sub-projects may produce an<br>
immediately visible effect on LibreOffice like the ones above.<br>
<br>
Different paths available:<br>
<br>
Path A:  Rebuild existing IDE<br>
Replace editor with scintilla and move windowing to GTk.<br>
+ lessens Runtime/IDE integration issues<br>
-  will still be LOB only<br>
<br>
Path B:  Replace existing IDE with code editor (Geany) and plugins (Glade)<br>
Step-by-step might be the best path ... could also be slowest and most work<br>
- needs to work through ~all Runtime/IDE integration issues to succeed<br>
- needs Glade integration to support dialog boxes<br>
<br>
Path C:  Replace existing IDE with tailored full-featured IDE (Anjuta)<br>
+ minimizes IDE development, so might be fastest path<br>
- needs to work through ~all Runtime/IDE integration issues to succeed<br>
+ could end up with an IDE in LibO that can be used to develop anything,<br>
including LibO<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://nabble.documentfoundation.org/GSoC-Ideas-for-Basic-tp4139212.html" target="_blank">http://nabble.documentfoundation.org/GSoC-Ideas-for-Basic-tp4139212.html</a><br>
Sent from the Dev mailing list archive at Nabble.com.<br>
_______________________________________________<br>
LibreOffice mailing list<br>
<a href="mailto:LibreOffice@lists.freedesktop.org">LibreOffice@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/libreoffice" target="_blank">http://lists.freedesktop.org/mailman/listinfo/libreoffice</a><br>
</blockquote></div><br></div>