vscode-test-get-content

2.2.0 • Public • Published

vscode-test-get-content Build Status

Provides a set of helper functions for getting content of the Visual Studio Code instance.

This helper is designed to be used in VSCode tests / extensions only.

Usage

Simply getting the editor's content:

const vscode = vscode = require( 'vscode' ),
    getContent = require( 'vscode-test-get-content' );
 
vscode.workspace.openTextDocument( __dirname + '/_fixtures/myFancyFile.txt' )
    .then( ( doc ) => {
        return vscode.window.showTextDocument( doc );
    } )
    .then( textEditor => {
        assert.equal( getContent( textEditor ), 'let text = "hello world!";' );
    } );

Getting the content with selections:

const vscode = vscode = require( 'vscode' ),
    getContent = require( 'vscode-test-get-content' );
 
vscode.workspace.openTextDocument( __dirname + '/_fixtures/myFancyFile.txt' )
    .then( ( doc ) => {
        return vscode.window.showTextDocument( doc );
    } )
    .then( textEditor => {
        // [, ], { and } characters mark a ranged selection.
        textEditor.selection = new vscode.Selection( 0, 4, 0, 8 );
        assert.equal( getContent.withSelection( textEditor ), 'let [text} = "hello world!";' );
    } );

Options

Both main getContent and withSelection methods take optional options object as a second argument.

  • options.normalizeEol - Boolean - Whether to change Windows-style end of line characters, to Unix-style. Defaults to true.
  • options.caret - String - Character used to represent caret (collapsed selection). Defaults to "^".
  • options.anchor.start - String - Selection anchor open character. Defaults to "[".
  • options.anchor.end - String - Selection anchor close character. Defaults to "]".
  • options.active.start - String - Selection active part open character. Defaults to "{".
  • options.active.end - String - Selection active part close character. Defaults to "}".

Selection Markers

There are three selection markers:

  • ^ - Marks a collapsed selection. This is ^random text
  • [, ] - Marks a ranged selection anchor point, so the place where ranged selection is started. This [is random} text
  • {, } - Marks a ranged selection active point, so the place selection ends. This [is random} text

Markers Customization

If the default makers collide with your test case, you can use custom markers by passing options object, just like below:

const vscode = vscode = require( 'vscode' ),
    getContent = require( 'vscode-test-get-content' );
 
vscode.workspace.openTextDocument( __dirname + '/_fixtures/myFancyFile.txt' )
    .then( ( doc ) => {
        return vscode.window.showTextDocument( doc );
    } )
    .then( textEditor => {
        let options = {
            caret: '🍕',
            active: {
                start: '🚒',
                end: '🚒'
            },
            anchor: {
                start: '🦄',
                end: '🦄'
            }
        };
 
        textEditor.selection = new vscode.Selection( 0, 4, 0, 8 ); // Select "text"" word.
        assert.equal( getContent.withSelection( textEditor, options ), 'let 🦄text🚒 = "hello world!";' );
    } );

Related

If you need to easily set your content with or without selection, be sure to check vscode-test-set-content package. It follows the same idea, and allows you to set the content and selection in similarly easy way.

Package Sidebar

Install

npm i vscode-test-get-content

Weekly Downloads

8

Version

2.2.0

License

MIT

Last publish

Collaborators

  • mlewand