Legato
Legato

GoFiler Legato Script Reference

 

Legato v 1.4j

Application v 5.22b

  

 

Chapter OneIntroduction

1.1 General 

1.1.1 Introduction

This document describes a scripting language called Legato for use either as a stand alone or for use within Novaworks Windows Applications. The primary purpose of Legato is to provide a method of performing complex automated operations that can be customized based on the end user’s needs. The language can be used as a standalone platform, a tool to add features and processing to various existing functionalities, or to expand or modify application menu and ribbon functions.

Legato offers powerful tools to customize and automate an application for any task. Legato scripts can be simplistic, such as a small script that can quickly and effortlessly remove unnecessary leading or trailing white spaces from table rows. They can also be complicated and robust enough to adjust Applications’s ribbons and appearance, automate collaboration among multiple people or teams by adding and updating task lists, or guiding users through customized, predefined filing processes to ensure data integrity. Legato scripts even have the capacity to interface with other applications and languages, so the capacity to expand and customize capabilities is endless.

Legato is a structured scripting language. That is, it carries many of the characteristics of both a structured programming language and a scripting language. For example, one can write a program as simple as the example below:

 

MessageBox("Hello World");

 

When this is executed, it would yield:

The term structured is used because Legato can be programmed in a structured manner using brace levels and local variables like C/C++ or Java while still permitting flat, unstructured constructs as a scripting language does. What this provides is the ability to create both quick, little scripts as well as complex utilities or extensions.

Execution of the language is performed on an interpreted basis like JavaScript, Perl, or PHP. In other words, a script is interpreted and run line by line (in actuality, it is parsed into an internal ‘P’ code to allow for quick execution once parsed). This is different than a compiled program, such as one written in C++ or Java, which is converted into raw machine code and then run directly by the computer. There are advantages and disadvantages to both. Since Legato is not meant to calculate all prime numbers from 1 to 1 trillion or process audio or video in real time, the advantages of high speed compiled code that is machine-optimized is not necessary. It also then does not carry the steep learning curve and complexities of complied languages. Interpreted languages have the advantage to being easier to quickly develop simple programs, albeit programs that run at a slower speed. In addition, many interpreted languages are very forgiving and lenient with respect to variable type casting and program structure.

While scripts can have any file extension, generally Legato scripts have an “.ls” file extension (Legato Script) or an “.ms” file extension (Menu Script). A program can be as simple as shown above or very complex with included files or even calls to external DLLs to access additional functionality. Also, resources should have a “.rc” extension. This extension is also used by third-party resource editors.

Finally, this manual assumes the reader has a basic knowledge of programming constructs, algorithms, and conventions. It has been written under with the assumption that the reader has a prior knowledge of programming fundamentals.

1.1.2 Purpose

Why another language? There are many program languages available, some of which are open source while others require commercial licenses. Using any of these languages would necessitate extensive integration with our applications, would potentially carry licensing and other issues, and would offer some disadvantages as well as benefits. After review it was determined that the core language would only be a modest part of the overall effort to create, integrate, test, and document an integrated programming language. Therefore the decision was made to develop a proprietary language that could fully integrate into Novaworks applications without licensing restrictions or other concerns.

Legato is tightly integrated with the host application. As the language moves to maturity, more and more aspects of the parent application will be integrated. The figure below demonstrates how Legato can augment application capabilities (Legato’s additions to the application are boxed in red).

 

Legato offers a comprehensive programming interface that can wrap around the application and interact with numerous document sources and destinations, including the internet, cloud storage systems, and databases. It can automate aspects of the edit cycle and customize user processes, as well as offer enhanced document control, data loading procedures, and project specific process control. The following charts depict just some of the ways Legato can provide significant extensions to the application.

One of the more fundamental uses of Legato is the design and implementation of custom edit and validation tools. The above figure demonstrates how such a tool could provide custom checking for reference errors within an edit window. A Legato script could scan the text of the window and query the user as to whether those items are correct in succession. This tool could be designed to check whether references are valid, ordered, and formatted properly according to the specifications of a project. Manually performing such a check would otherwise be time-consuming and tedious.

Legato offers comprehensive dialog support. This could be employed in any number of ways. As shown above, a dialog could be designed to customize an import process. A Legato script could permit the user to select a type of file to import, present relevant parameters to the user, and then perform the import process, producing a file for editing and a log containing errors or warnings. This offers the programmer the powerful opportunity to create import scripts and routines for data types not currently supported by the application or to customize import options for commonly imported files.

Legato’s ability to interface with the application is chief among its many features. The application provides numerous hooks into ribbon, menu, and other functions whereupon customized scripts and routines can be introduced to alter or enhance the application’s processes. This would permit the addition of a custom dialog during the launch of a file to a browser, as shown above. A Legato script could preprocess the input to the browser, present the dialog, perform post-processing depending on the parameters selected, and then pass the adjusted data back to the application for presentation.

Legato can also implement collaboration features, as shown above. After a project is opened, tasks can be synced against collaboration software such as Customer Resource Management (CRM) and Electronic Record Processing (ERP) software suites to filter those tasks that require attention or are overdue. These can then be displayed and marked as urgent to the user. Similarly, Legato can pull tasks assigned to the user currently logged into the computer and running the application, helping the user determine which jobs must be completed. A system such as this better ensures synchrony and coordinated efforts among a production team.

These reflect a few of the varied and powerful ways Legato can adapt an application to suit the many individualized needs of users and projects. The ability to automate, customize, and integrate processes into the application is an important feature allowing the application to be tailored to the user’s specific requirements.

1.1.3 Conventions

The following conventions are used in this manual:

Important terms that are defined in the glossary are shown in italics. For example: “item known as a table

Code examples, including example variable names, are shown in courier. For example, “the flag FO_READ_SHARE

Data types/variable types are shown in italics.

1.1.4 Organization of Reference Manual

Part I — Language Reference

The first section contains the language description functions common to all applications. Note when Legato is run as standalone command line application, certain modules are not available (this also changes section numbering).

Chapter 1 — Introduction

Chapter 2 — Language Overview

Chapter 3 — Data Types and Operators

Chapter 4 — Flow Control

Chapter 5 — General Functions

Chapter 6 — File Functions

Chapter 7 — Math Functions

Chapter 8 — Data Functions

Chapter 9 — Dialog Functions

Chapter 10 — Graphic and Image Functions

Chapter 11 — SGML Functions

Chapter 12 — Internet Functions

Chapter 13 — Collaboration Functions

Chapter 14 — Project Functions

Chapter 15 — Windows/OS Functions

Part II — Application Specific Functionality

The first section contains the application-specific function groups. These may not be available depending on the host application/product.

Chapter 16 — Application

Chapter 17 — Application Integration Functions

Chapter 18 — DataView Integration

Chapter 19 — TextView Integration

Chapter 20 — PageView Integration

Chapter 21 — EDGARView Integration

Chapter 22 — Conversion Functions

Chapter 23 — XBRL Functions