@sap/cds-lsp
Version:
Language server for CDS
96 lines (74 loc) • 3.34 kB
Markdown
# CDS Language Server
The CDS language server implements the Language Server Protocol ([LSP](https://github.com/Microsoft/language-server-protocol))
for SAP's Core Data Services ([CDS](https://cap.cloud.sap/docs/cds/cdl)).
It can be used in many popular IDEs like, for example, [Visual Studio Code](https://cap.cloud.sap/docs/get-started/tools#vscode),
[IntelliJ](https://github.com/cap-js/cds-intellij),
or [Eclipse](https://cap.cloud.sap/docs/get-started/tools#eclipse).
It provides many useful features for working with and enjoying CDS sources.
## Features
- Syntax highlighting via Textmate grammar
- Additional semantic highlighting
- Source code validation providing diagnostics (error messages, warnings, ...)
- Where-used navigation to
- definition
- references
- highlight occurrences
- Code completion for
- keywords
- identifiers incl. not yet imported identifiers with corresponding `using` statement
- using paths and artifacts incl. showing README.md documentation as details
- i18n translation IDs
- turn on/off formatting regions
- Snippets for typical CDS language construct<br/> (with documentation extracts of [capire](https://cap.cloud.sap/docs/cds/cdl) explaining language concepts)<br/> like
- namespace and context
- using
- service
- type
- entity and projections, ...
- element, associations, and compositions
- extend and annotate
- annotations for documentation
- annotate all elements of an entity
- Quick fixes to
- create using statement for unknown artifacts
- maintain missing translation
- convert `@description` annotations to doc comments
- Inventory (symbols) for
- current file (Outline)
- workspace incl. query capabilities to select, for example, artifact types, names, also include reuse models
- Hover information based on
- doc comments
- `@title` and `@description` annotations
- translations
- `README.md` and `package.json#description`
- Code formatting
- whole document
- selected range
- on-the-fly when completing statements using `;` or `}`
- on save (depending on the IDE)
- on paste (depending on the IDE)
- with many options, configurable using
- settings file
- command line switches
- Config UI with simulation of options for Visual Studio Code and Eclipse
- JSON schema for textual support
- also for markdown in doc comments
- Code formatting via CLI (incl. verification mode)
- Translation support
- properties, JSON, and CSV files
- navigate to translation definitions from translation IDs like `'{i18n>customerName}'`
- show translations on hover
- quickfix to maintain missing translations
- Annotation support via external plugin
- diagnostics
- where-used navigation
- hover information
- code completion
- quick fixes for translations
## Usage
The CDS language server can only be used as part of an IDE extension or plugin. See [Installation](#installation) for more details.
A code formatter for CDS source files is included.
## Installation
Refer to the [installation details](doc/INSTALLATION.md).
## License
This package is provided under the terms of the [SAP Developer License Agreement](https://tools.hana.ondemand.com/developer-license-3_1.txt).