|
|
TODO |
|
|
\ No newline at end of file |
|
|
## atom-linter
|
|
|
|
|
|
**atom-linter** ist ein in JavaScript geschriebenes Hilfsmodul für den Editor Atom.
|
|
|
Mithilfe von atom-linter können bestehende Linter an Atom angebunden werden.
|
|
|
Hierzu werden diverse Funktionen vordefiniert.
|
|
|
Die wichtigsten Funktionen sind *exec* und *parse*:
|
|
|
|
|
|
```javascript
|
|
|
export function exec(command: String, args: Array<string> = [], options: Object): Promise
|
|
|
export function parse(data: String, regex: String, options: Object = {flags: 'g'}): Array<Linter$Message>
|
|
|
```
|
|
|
|
|
|
*exec* führt den Linter (command) mit den Argumenten (args) als CLI-Programm aus und gibt das Ergebnis als Promise-Objekt zurück.
|
|
|
Das Promise-Objekt ermöglicht es auf die Ausführung der Funktion zu warten (await) oder eine Cotinuation anzugeben und somit eine asynchrone Aufgabe zu starten dessen Ergebnis später verarbeitet wird.
|
|
|
|
|
|
*parse* ermöglicht es die Ausgabe (data) der *exec*-Funktion mittels eines regulären Ausdrucks (regex) zu parsen. Viele Linter (z.B.: hlint) bieten die Möglichkeit das Ausgabeformat mittels CLI-Argumenten zu bestimmen, sodass auch eine Ausgabe als JSON-String möglich ist und die *parse*-Funktion nicht benötigt wird.
|
|
|
|
|
|
Ein typischer Aufruf des atom-linter Pakets sieht wie folgt aus:
|
|
|
```javascript
|
|
|
import atomLinter from 'atom-linter'
|
|
|
|
|
|
const myLinter = {
|
|
|
// ...
|
|
|
async lint(textEditor) {
|
|
|
const output = atomLinter.exec('myprogram', ['parameter1', 'parameter2'], { uniqueKey: 'my-linter' })
|
|
|
// NOTE: Providers should also return null if they get null from exec
|
|
|
// Returning null from provider will tell base linter to keep existing messages
|
|
|
if (output === null) {
|
|
|
return null
|
|
|
}
|
|
|
// ... parse output and return messages
|
|
|
return []
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
[Quelle](https://github.com/steelbrain/atom-linter) |
|
|
\ No newline at end of file |