sparql-editor
v0.6.0
Published
Sparql Editor based on CodeMirror 6
Downloads
32
Readme
Features
- 🏳🌈 Syntax Highlighting
- 📔 History Tracking
- 💢 Linting
- 🔎 Search Functionality
- 🔽 Tooltips
📚 Documentation
Usage
The SPARQL Editor is stable and actively used in the sparql-browser-extension. It returns a CodeMirror 6 EditorView
instance, enabling you to manipulate the editor as detailed in the CodeMirror documentation.
Overview
This editor instance leverages CodeMirror 6 with sensible defaults and enhanced features. It utilizes the codemirror-lang-sparql parser for syntax highlighting, while linting is facilitated by the SPARQL.js library.
Getting Started
npm i sparql-editor
import { createSparqlEditor } from "sparql-editor"
const domElement = document.getElementById("editor")
const editor = createSparqlEditor({
parent: domElement,
onChange: onChange,
value: "SELECT * WHERE { ?s ?p ?o }"
});
function onChange(value, codemirrorViewInstance) {
console.log(codemirrorViewInstance)
alert(value)
}
Options
| Argument | Description | default | required | |---|---|---|---| | parent | html dom element to attach editor to | / | required | onChange | function that gets called whenever editor value changes | / | | | value | Initial value of editor | https://github.com/aatauil/sparql-editor/blob/4732494949e44910d8ca45d0391331b520ae9ee0/src/index.ts#L32-L37 | |
Extending the editor
Currently there is no easy way for adding extentions to the editor, this will hopefully be added soon. Until then, the best direction to take is forking this project, installing or deleting extensions and updating the index.ts file accordingly.
Development guide
- clone this repo
cd
into it- run
npm install
- run
npm run dev
In the test folder there is a index.html file. Your editor probably has an extension that can easily serve this file (html) for you. In case you are using VSCode, we recommend the Live Server Extension.
📍 Roadmap
[x] Tooltip functionality [] Linting by codemirror-lang-sparql [] Autocomplete functionality [] Extensible extensions
License
This project is MIT licensed.