Skip to content

alex wrapper to easily integrate with Visual Studio Code

License

Notifications You must be signed in to change notification settings

shinnn/alex-vscode

Repository files navigation

alex-vscode

npm version Build Status Coverage Status

alex wrapper to easily integrate with Visual Studio Code language server

const alexVSCode = require('alex-vscode');
const {TextDocuments, createConnection} = require('vscode-languageserver');

const connection = createConnection(process.stdin, process.stdout);
const documents = new TextDocuments();

documents.onDidChangeContent(event => {
  event.document.getText(); //=> 'He is a video game maniac.'
  event.document.uri; //=> 'file:///Users/user/foo.txt'

  alexVSCode({event.document});
  /* =>
    [
      {
        message: '`He` may be insensitive, use `They`, `It` instead',
        range: {
          start: {
            character: 0,
            line: 0
          },
          end: {
            character: 2,
            line: 0
          }
        },
        severity: 2
      },
      {
        message: '`maniac` may be insensitive, use `fanatic`, `zealot`, `enthusiast` instead',
        range: {
          end: {
            character: 25,
            line: 0
          },
          start: {
            character: 19,
            line: 0
          }
        },
        severity: 1
      }
    ]
  */
});

documents.listen(connection);
connection.listen();

Installation

Use npm.

npm install alex-vscode

API

const alexVSCode = require('alex-vscode');

alexVSCode(textDocument)

textDocument: TextDocument
Return: Array<Diagnostic> (VS Code Diagnostics)

It checks a given document with alex and returns warnings as an array of Visual Studio Code compatible diagnostic objects.

When the document is a markdown file, it parses the text as markdown.

document.getText(); //=> '```\nHe is a video game maniac.\n```\n'
document.uri; //=> 'file:///Users/user/foo.markdown'

alexVSCode(document); //=> []

License

Copyright (c) 2015 - 2018 Shinnosuke Watanabe

Licensed under the MIT License.