epl-syntax-highlighting READMECI takes place on the Azure Platform building on Linux, Windows and Mac platforms. This is a community developed VSCode extension to support development of Apama Streaming Analytics applications. Initially it offered syntax highlighting for EPL (Event Programming Language) files. EPL files are used by the Apama Streaming Analytics product to define applications that are executed within a runtime process called the 'correlator'. The language is a domain specific language centered around events and event processing. As the extension has grown, additional capabilities are being added beyond only syntax highlighting, such as launching the correlator runtime with files from your project. For more information about Apama and EPL please visit the Apama Community website. Users of this extension may also find the early-stage new vscode extension for PySys testing helpful, as PySys is the primary framework for testing Apama applications. Features of the epl-syntax-highlighting extension
Limitations
Theme based syntax highlightingBased on the theme you choose the EPL code will be highlighted and easier to read than plain text files. This has been the case since the beginning of this extension, but it is more complete now (v1.0) and won't change significantly from here onward. SettingsThere are various settings available for the extension now. All the Apama configuration entries are prefixed 'SoftwareAG.Apama', and searching for 'Apama' will show all of them.
There are also some placeholders for using EPL with Cumulocity IoT. these will become active in a later release (>v1.0). DiagnosticsIf you have enabled the Language Server and are using Apama full version 10.5.3+ then you will have access to live diagnostics. These diagnostics are limited to the file currently being edited but will become more fully featured as future releases are produced. Specifically, if you write EPL that uses external bundles or code, then the diagnostics may not take these into account. SnippetsThere are various snippets defined in the extension to make writing code easier. Tasks: correlator, inject monitor, and send eventTasks can be created for running correlators on specific ports. The commands to inject EPL and send events also support these ports. Additionally there are tasks for engine_watch and engine_recieve that can also be set up. In future releases there will be a more coherent interface for this allowing a suite of tasks to be set up in one operation. The animation below shows the default operation of the tasks. Send Event fileOnce you have a correlator executing some EPL then you can send event files to it with a right-click. Create TasksThe animation below shows how to create a non-default tasks (allowing multiple correlators on different ports for example). Create ProjectThe apama_project tool can be used to create projects which are compatible with the eclipse-based 'Software Ag Designer' IDE, and will also allow you to edit Designer created projects in vscode. Add bundlesYou can add Bundles and instances to the project using the UI. Remove bundlesYou can remove Bundles and instances from the project using the UI. Deploy projectYou can deploy the project using the UI and then run that project in a correlator. N.B. currently you may need to create or move a configuration file into the root of the deployed directory. Add breakpointsYou can add breakpoints to the code for debugging. These are limited to line-based breakpoints currently. DebugDebugging the application also follows the standard vscode patterns. RequirementsTo use the diagnostics capability you must have version 10.5.3 or later of Apama installed. Known IssuesThere are a number of issues that will be fixed, but please do raise issues via GitHub if you come accross things. Pull requests are also very welcome! DevelopmentUsers are welcome to make pull requests with fixes and enhancements but I reserve the right to control what and when goes into released versions of the extention. Release Notesv1.2.1
v1.0.1 (June 2020)
v0.2.0 to v0.9.0 (February 2020)
v0.1.0 (February 2020)
|