# Fichu
A blazingly fast formatter and [language server](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification) for [SPARQL](https://de.wikipedia.org/wiki/SPARQL), written in Rust :crab:.
# Getting Started
## Installation
Fichu is availible on [PyPi](https://pypi.org/project/fichu/):
```shell
pipx install fichu
```
Or on [crate.io](https://crates.io/crates/fichu):
```shell
cargo install fichu
```
You can also build it from source:
```shell
git clone https://github.com/IoannisNezis/sparql-language-server.git
cd sparql-language-server
cargo build --release
```
## Usage
To run Fichu as **formatter** run:
```shell
fichu format <PATH>
```
To run Fichu as **lanugage server** run:
```shell
fichu server
```
This will create a language server listening on stdio.
# Configuration
Fichu can be configured through a `fichu.toml` or `fichu.yml` file.
Here is the full default configuration
```toml
[format]
align_predicates = false
align_prefixes = false
separate_prolouge = true
capitalize_keywords = true
insert_spaces = true
tab_size = 2
where_new_line = true
```
# use in web
If you want to connect from a web-based-editor, you can use this package as well.
For this purpouse this can be compiled to wasm and is availible on [npm](https://www.npmjs.com/package/@ioannisnezis/sparql-language-server):
```shell
npm i @ioannisnezis/sparql-language-server
```
You will have to wrap this in a Web Worker and provide a language server client.
There will be more documentation on this in the future...
## Demo
In the mean time, check out the [demo](https://sparql.nezis.de).
Raw data
{
"_id": null,
"home_page": null,
"name": "fichu",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "SPARQL, formatter, lsp, wasm",
"author": "Ioannis Nezis <ioannis@nezis.de>",
"author_email": "Ioannis Nezis <ioannis@nezis.de>",
"download_url": "https://files.pythonhosted.org/packages/4a/f4/6a1ea54e2e4edad6955e03cf790dc1f8a02ac12b71942fbbefec99cfc0bb/fichu-0.1.9.tar.gz",
"platform": null,
"description": "# Fichu\n\nA blazingly fast formatter and [language server](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification) for [SPARQL](https://de.wikipedia.org/wiki/SPARQL), written in Rust :crab:.\n\n# Getting Started\n\n## Installation\n\nFichu is availible on [PyPi](https://pypi.org/project/fichu/):\n\n```shell\npipx install fichu\n```\n\nOr on [crate.io](https://crates.io/crates/fichu):\n\n```shell\ncargo install fichu\n```\n\nYou can also build it from source:\n\n\n```shell\ngit clone https://github.com/IoannisNezis/sparql-language-server.git\ncd sparql-language-server\ncargo build --release\n```\n\n## Usage\n\nTo run Fichu as **formatter** run:\n\n```shell\nfichu format <PATH>\n```\n\nTo run Fichu as **lanugage server** run:\n\n```shell\nfichu server\n```\n\nThis will create a language server listening on stdio.\n\n# Configuration\n\nFichu can be configured through a `fichu.toml` or `fichu.yml` file.\n\nHere is the full default configuration\n```toml\n[format]\nalign_predicates = false\nalign_prefixes = false\nseparate_prolouge = true\ncapitalize_keywords = true\ninsert_spaces = true\ntab_size = 2\nwhere_new_line = true\n```\n\n# use in web\n\nIf you want to connect from a web-based-editor, you can use this package as well. \nFor this purpouse this can be compiled to wasm and is availible on [npm](https://www.npmjs.com/package/@ioannisnezis/sparql-language-server):\n\n\n```shell\nnpm i @ioannisnezis/sparql-language-server\n```\n\nYou will have to wrap this in a Web Worker and provide a language server client.\nThere will be more documentation on this in the future...\n\n## Demo\n\nIn the mean time, check out the [demo](https://sparql.nezis.de).\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A formatter for SPARQL queries",
"version": "0.1.9",
"project_urls": {
"Source Code": "https://github.com/IoannisNezis/sparql-language-server"
},
"split_keywords": [
"sparql",
" formatter",
" lsp",
" wasm"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "39ec3f7419bcb59aefc82aac092d8d7f14fab4500439c74c18bbc8981d05a7bc",
"md5": "4128781807f516086a2de943a66a6e76",
"sha256": "777e6da8a34c37b02194fa65ba1e568c94e46403cacd1cc42eeb88cadae34774"
},
"downloads": -1,
"filename": "fichu-0.1.9-py3-none-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "4128781807f516086a2de943a66a6e76",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 1657146,
"upload_time": "2024-09-25T14:30:26",
"upload_time_iso_8601": "2024-09-25T14:30:26.435188Z",
"url": "https://files.pythonhosted.org/packages/39/ec/3f7419bcb59aefc82aac092d8d7f14fab4500439c74c18bbc8981d05a7bc/fichu-0.1.9-py3-none-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4af46a1ea54e2e4edad6955e03cf790dc1f8a02ac12b71942fbbefec99cfc0bb",
"md5": "c6c752af936b585eb114c4075e362d36",
"sha256": "e63538c8a2b9426dee82b38c7d79264973da91e78e2fb53d5a2f5c7166e854fa"
},
"downloads": -1,
"filename": "fichu-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "c6c752af936b585eb114c4075e362d36",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 35865,
"upload_time": "2024-09-25T14:30:29",
"upload_time_iso_8601": "2024-09-25T14:30:29.949812Z",
"url": "https://files.pythonhosted.org/packages/4a/f4/6a1ea54e2e4edad6955e03cf790dc1f8a02ac12b71942fbbefec99cfc0bb/fichu-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-25 14:30:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "IoannisNezis",
"github_project": "sparql-language-server",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "fichu"
}