ScriptForge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.


**
_______________________________________________
LibreOffice mailing list
LibreOffice@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/libreoffice




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux