vscode-css-languageservice

CSS, LESS & SCSS language service extracted from VSCode to be reused, e.g in the Monaco editor.

  • Owner: microsoft/vscode-css-languageservice
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

vscode-css-languageservice

Language services for CSS, LESS and SCSS

npm Package
NPM Downloads
Azure DevOps Build Status
Travis Build Status

Why?

The vscode-css-languageservice contains the language smarts behind the CSS, LESS and SCSS editing experience of Visual Studio Code
and the Monaco editor.

  • doValidation analyses an input string and returns syntax and lint errors.
  • doComplete provides completion proposals for a given location.
  • doHover provides a hover text for a given location.
  • findDefinition finds the definition of the symbol at the given location.
  • findReferences finds all references to the symbol at the given location.
  • findDocumentHighlights finds all symbols connected to the given location.
  • findDocumentSymbols provides all symbols in the given document
  • doCodeActions evaluates code actions for the given location, typically to fix a problem.
  • findColorSymbols evaluates all color symbols in the given document
  • doRename renames all symbols connected to the given location.
  • getFoldingRanges returns folding ranges in the given document.

Installation

npm install --save vscode-css-languageservice

API


export interface LanguageService {
	configure(raw: LanguageSettings): void;
	doValidation(document: TextDocument, stylesheet: Stylesheet, documentSettings?: LanguageSettings): Diagnostic[];
	parseStylesheet(document: TextDocument): Stylesheet;
	doComplete(document: TextDocument, position: Position, stylesheet: Stylesheet): CompletionList;
	setCompletionParticipants(registeredCompletionParticipants: ICompletionParticipant[]): void;
	doHover(document: TextDocument, position: Position, stylesheet: Stylesheet): Hover, null;
	findDefinition(document: TextDocument, position: Position, stylesheet: Stylesheet): Location, null;
	findReferences(document: TextDocument, position: Position, stylesheet: Stylesheet): Location[];
	findDocumentHighlights(document: TextDocument, position: Position, stylesheet: Stylesheet): DocumentHighlight[];
	findDocumentSymbols(document: TextDocument, stylesheet: Stylesheet): SymbolInformation[];
	doCodeActions(document: TextDocument, range: Range, context: CodeActionContext, stylesheet: Stylesheet): Command[];
	doCodeActions2(document: TextDocument, range: Range, context: CodeActionContext, stylesheet: Stylesheet): CodeAction[];
	findDocumentColors(document: TextDocument, stylesheet: Stylesheet): ColorInformation[];
	getColorPresentations(document: TextDocument, stylesheet: Stylesheet, color: Color, range: Range): ColorPresentation[];
	doRename(document: TextDocument, position: Position, newName: string, stylesheet: Stylesheet): WorkspaceEdit;
	getFoldingRanges(document: TextDocument, context?: { rangeLimit?: number; }): FoldingRange[];
	getSelectionRanges(document: TextDocument, positions: Position[], stylesheet: Stylesheet): SelectionRange[];
}

export interface LanguageSettings {
	validate?: boolean;
	lint?: any;
}

Development

Note: All CSS entites (properties, at-rules, etc) are sourced from https://github.com/microsoft/vscode-custom-data/tree/master/web-data and transpiled here. For adding new property or fixing existing properties' completion/hover description, please open PR there).

How can I run and debug this node module?

  • clone, npm install
  • open the folder in VSCode.
  • set breakpoints, e.g. in cssCompletion.ts
  • run JUnit tests from the debug viewlet and wait until a breakpoint is hit:
    image

In VSCode:

  • run VSCode out of sources as described here: https://github.com/Microsoft/vscode/wiki/How-to-Contribute
    • in the instance run from sources open a .css file
  • open a VSCode on the VSCode source
    • run command Debug: Attach to Node process and pick the process with the css-language-features path
    • Set a breakpoint in extensions/css-language-features/server/node_modules/vscode-css-languageservice/lib/umd/services/cssCompletion.js
  • in the instance run from sources invoke code completion in the .css file
  • use yarn link vscode-css-languageservice in extensions/css-language-features/server to run VSCode with your changes to vscode-css-languageservice

License

(MIT License)

Copyright 2016, 2019 Microsoft

With the exceptions of build/mdn-documentation.js, which is built upon content from Mozilla Developer Network
and distributed under CC BY-SA 2.5.

Overview

Name With Ownermicrosoft/vscode-css-languageservice
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 4)
Platform
License:MIT License
Release Count149
Last Release Namev6.2.14 (Posted on )
First Release Namev1.1.0 (Posted on 2016-09-29 17:05:02)
Created At2016-06-23 08:22:44
Pushed At2024-04-22 18:42:39
Last Commit At
Stargazers Count299
Watchers Count33
Fork Count173
Commits Count1.1k
Has Issues Enabled
Issues Count167
Issue Open Count38
Pull Requests Count179
Pull Requests Open Count6
Pull Requests Close Count36
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top