ScriptForge
Jean-Pierre Ledure
jp at ledure.be
Fri Oct 30 13:33:31 UTC 2020
Hi,
during the coming week, the ScriptForge library (read below) will be
integrated in the master branch of LO.
It consists in a significant number of new (Basic, Python, text) files
and a few new directories. With also an impact on a number of .mk files.
The building process has been tested already on my local repo and should
not cause any inconvenience, ... but, you never know ...
Thanks in advance for your support.
Jean-Pierre LEDURE
----------------------------------------------------------------------------------------------------------------------------
On GitLab: https://gitlab.com/LibreOfficiant/scriptforge
oSLO conference/slides:
https://conference.libreoffice.org/assets/Uploads/oSLO-ScriptForge-2020-10.pdf
----------------------------------------------------------------------------------------------------------------------------
ScriptForge
===========
Purpose
-------
Build an extensible and robust collection of macro scripting resources
for LibreOffice to be invoked from user Basic or Python scripts.
Context
-------
This project comes with a bunch of subprogram (“primitives”) aimed at
filling some programming gaps in LibreOffice Basic. These primitives
cover many of LibreOffice functionalities and are meant to be extended
by any contributor over time. They complement - and often replace - the
usual `Tools` library made available under LibreOffice packages since
the OpenOffice years.
Integration into LibreOffice
----------------------------
The development of the software is done currently with LibreOffice 6.4.
Tests are undergone both under the Windows and Linux operating systems.
When ready, the code will be integrated into the master branch of
Libreoffice. It will appear as one or more additional "*LibreOffice
Macros & Dialogs*" libraries.
The intent is to have the software ready for production for the next
*LibreOffice 7.1* release.
Any pre-existing Basic or Python library in the LibreOffice software is
left unchanged.
Deliverables (version 1.0)
--------------------------
- A set of Basic + Python modules and classes covering next topics
- about data containers
+ an extensive set of primitives for array handling,
including sorts, set operations and interfaces with csv files and Calc
sheets
+ an extensive set of primitives for string handling,
including replacements, regular expressions, encodings, hashing and
localization
+ a Dictionary mapping class
- a coherent error handling for both user and ScriptForge scripts
- complete FileSystem and TextStream classes for file and
directory handling, and text files read & write
- detailed context information: platform, operating system,
directories, ...
- interconnection of Basic and Python modules
- easy access to and management of actual windows and documents
- specific modules for
+ automation on Calc sheets
+ Dialogs and their controls
+ Toolbars and their controls
+ Accessing data contained in databases
- The corresponding unit tests grouped in a QA library
- The user documentation as a set of LibreOffice Help pages
Extensibility
-------------
The described modules and classes will be invoked from user scripts as
"Services". A generic constructor of those services has been designed
for that purpose:
CreateScriptService("servicename"[, arg0, Arg1, ...])
Symmetrically services are registered with the
`RegisterScriptServices(...)` method. This method may be invoked from
external libraries to extend the set of available services.
Above mechanisms make ScriptForge an easily extensible ecosystem
combining standard libraries, libraries published as extensions or
distributed as company extensions.
**
More information about the LibreOffice
mailing list