-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add documentation for core package (#22)
* Add documentation * Add example code * Fix query * Add example docu and changed completion trigger * Added a test for completions
- Loading branch information
Showing
5 changed files
with
709 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
# Langium/SQL | ||
|
||
This project is going to provide a language server for SQL dialects. | ||
This project provides a language server for SQL dialects. | ||
|
||
Go to the [core package](./packages/langium-sql/README.md) for better documentation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# Langium/SQL | ||
|
||
This project provides a language server for SQL dialects. | ||
|
||
## Features | ||
|
||
* **Schema-driven**: Add a set of table definitions to spread out the world for your SELECT queries. | ||
The table definitions can be located in a different file of the same workspace. You can keep definitions and queries separated. | ||
* **Code completion**: Press Ctrl + Space keys to trigger the completion directly. You will get suggestions for the current context. | ||
* **Syntax highlighting**: to distinguish what are keywords, identifiers, numeric literals and for a better perception of the SQL syntax. | ||
* **Symbol search**: Use Cmd or Ctrl + mouse click on a column name to find the definition of it or explore the places where a column is used. | ||
* **Fast feedback** about contextual correctness: Whether referenced columns exist or types on certain operators are matching. | ||
* **Super-set approach**: Any piece of any dialect that is missing can be added to the main grammar and be protected from other dialects using validations. | ||
* **Highly customizable**: Any behavior or aspect that is missing for your specific use case can be easily overwritten. | ||
|
||
![](docs/langium_sql.svg) | ||
|
||
## Demo | ||
|
||
We prepared a showcase on the Langium project website. You can find it [here](https://langium.org/showcase/sql/). | ||
|
||
The given schema describes an airport database. It contains tables for airports, airlines, flights, and passengers. The queries are written in the MySQL dialect. | ||
|
||
## Getting started | ||
|
||
### Installation | ||
|
||
```sh | ||
npm install langium-sql | ||
``` | ||
|
||
or | ||
|
||
```sh | ||
yarn add langium-sql | ||
``` | ||
|
||
## Example usage | ||
|
||
Here is a minimal example of how to use the Langium/SQL language server in your project. | ||
|
||
```ts | ||
import { parseHelper, createTestServices } from "../test-utils"; | ||
import { join } from "path"; | ||
import { MySqlDialectTypes } from "../../src/dialects/mysql/data-types"; | ||
|
||
const services = createTestServices(MySqlDialectTypes); | ||
const parse = await parseHelper(services.Sql, join('path', 'to', 'schemas.sql')); | ||
const document = await parse("SELECT * FROM my_table;"); | ||
|
||
console.log(document.parseResult.value); | ||
``` | ||
|
||
See more examples in the [Langium test folder](test/). | ||
|
||
### Learn more | ||
|
||
Look at the [announcing blog post](https://www.typefox.io/blog/langium-sql) or the [Langium documentation](https://github.com/langium/langium#documentation) to get familiar with the project structure. | ||
|
||
## License | ||
|
||
[MIT](../../LICENSE) |
Oops, something went wrong.