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.

Main metrics

Overview
Name With Ownermicrosoft/vscode-css-languageservice
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 4)
Platform
License:MIT License
所有者活动
Created At2016-06-23 08:22:44
Pushed At2025-04-25 15:30:20
Last Commit At
Release Count161
Last Release Namev6.3.6-next.0 (Posted on )
First Release Namev1.1.0 (Posted on 2016-09-29 17:05:02)
用户参与
Stargazers Count340
Watchers Count33
Fork Count191
Commits Count1.1k
Has Issues Enabled
Issues Count191
Issue Open Count54
Pull Requests Count198
Pull Requests Open Count8
Pull Requests Close Count37
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private