0.10.0 • Published 3 years ago

lang-simpleboolean v0.10.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

npm version

lang-simpleboolean CodeMirror 6 Language Package

lang-simpleboolean is a language package for CodeMirror 6. It is a simple boolean-based query language that allows for statements such as blue AND red to be parsed to various components via @lezer/lr.

lang-simpleboolean in action

The package comes with code highlighting (Operators are shaded cyan, while Identifiers are magenta, and so on) as per CodeMirror, to enable use a CodeMirror theme such as theme-simple-white.

Language Grammar

In order of precedence in the parse tree generated from @lezer/lr.

  1. expression - any combination of the below grammar
  2. AND - operator token for the AND operation
  3. OR - operator token for the OR operation
  4. NOT - operator token for the NOT operation
  5. ( and ) - parenthesis for use in Application
  6. String - any Identifers in double quotes (")
  7. Boolean - #t or #f are demarcated as true or false
  8. Space - a " " character is identified in the tree for whitespace-sensitive applications
  9. Tab - a \t character is identified in the tree for whitespace-sensitive applications
  10. CarriageReturn - a \n character is identified in the tree for whitespace-sensitive applications
  11. Application - an expression that is enclosed automatically with ( and )
  12. BooleanExpression - an expression that contains an Identifier, an operator token (AND/OR/NOT), and then an Identifier, can be nested
  13. Identifier - any character that is not whitespace nor is already an operator token

Example Usage

The language package can be used by adding the following lines to your CodeMirror instance:

import { simpleBooleanCompletion, simpleBoolean } from 'lang-simpleboolean';
...
const state = EditorState.create({
    ...
    extensions: [
        ...
        simpleBoolean(),
        simpleBooleanCompletion([
          { label: "example1", type: "constant" }, // these are example custom Completion objects
          { label: "example2", type: "constant" }, // they are autocompletion suggestions you can input
          { label: "example3", type: "constant" },
          { label: "example4", type: "keyword" },
        ]),
        onUpdate,
      ],
});

Refer to the CodeMirror 6 Autocomplete Documentation on Completion objects for more information on what can be passed into simpleBooleanCompletion.

API Reference

Language simpleBooleanLanguage See Language class documentation.

function simpleBooleanCompletion(completeFromListParameter: Completion[]=[]) => Extension See Extension class documentation and Code Mirror 6 autocomplete documentation.

function simpleBoolean() => LanguageSupport See LanguageSupport class documentation.

License

MIT License © Shreyas Tallamraju

0.10.0

3 years ago

0.9.0

3 years ago

0.8.0

3 years ago

0.7.0

3 years ago

0.6.0

3 years ago

0.5.0

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago