Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
jozsefsallai committed Nov 24, 2020
1 parent e31685e commit 49f9001
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 5 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## v0.1.1 - 2020-11-24

### Added
- Added readme to the GitHub repository.

### Changed
- Changed the configuration to match the new .tscrc.json spec.

## v0.1.0 - 2020-11-21

Initial working version.
72 changes: 68 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,74 @@
# TSC Language Server

A work-in-progress language server written in Go, made for the TSC scripting
format. It aims to be small, performant, and completely editor-agnostic. The
language server implements the `.tscrc.json` spec (the spec document is also a
WIP).
A language server made for the TSC scripting format used in games such as Cave
Story. It aims to be small, performant, and completely editor-agnostic. The
language server implements the [`.tscrc.json` spec][tscrc-spec].

## Project Overview

The language server is written in the Go programming language and it ships as a
standalone binary. Language clients can connect to the server through TCP or
stdio.

Please note that this language server is currently not 100% stable, so bugs may
appear here and there.

## Getting Started

Language clients should normally install the language server for you
automatically but you can also install it manually. In this case, you have to
keep it up to date yourself, however.

You can download a binary from the [GitHub releases page][releases]. Checksums
are always attached so you can verify the integrity after download. Placing the
binary somewhere in your PATH means that language cliens will be able to use it
without any additional steps.

## Usage

You can start the server in one of two modes:

- Standard I/O mode (by running `tsc-ls start`)
- TCP mode (by running `tsc-ls tcp`)

...however, you'd normally want a language client to handle this for you (a
plugin or configuration in your IDE/editor).

### Current Language Clients/Configurations

- Visual Studio Code (WIP)

## For Language Client Developers

The TSC language server exposes the following LSP-specific JSON-RPC methods:

- `textDocument/didOpen` - adds the opened document to the language server's
file handler
- `textDocument/didClose` - removes the document from the language server's file
handler
- `textDocument/didChange` - updates the document in the language server's file
handler and sends error/warning diagnostics to the client
- `textDocument/completion` - sends a list of TSC commands that can be used from
within the editor's autocompletion feature
- `textDocument/hover` - provides hover information for commands and events
- `tsc/setConfig` - updates the LSP's default configuration with overrides from
the workspace's `.tscrc.json` file
- `tsc/resetConfig` - reverts to the LSP's built-in (standard) TSC configuration

## Credits

- [Studio Pixel][studio-pixel] and [Nicalis][nicalis] for Cave Story and the TSC
scripting format
- The [Terraform Language Server][terraform-ls] for inspiring a big part of this
project's structure and inner workings (seriously guys, you did a phenomenal
job!)

## License

[MIT](https://github.com/nimblebun/tsc-language-server/blob/master/LICENSE).

[tscrc-spec]: https://docs.nimblebun.works/tscrc-json
[releases]: https://github.com/nimblebun/tsc-language-server/releases/latest
[studio-pixel]: https://studiopixel.jp/
[nicalis]: https://www.nicalis.com/
[terraform-ls]: https://github.com/hashicorp/terraform-ls
2 changes: 1 addition & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ func main() {
app := cli.NewApp()
app.Name = "tsc-ls"
app.Usage = "language Server for the TSC scripting language"
app.Version = "0.1.0"
app.Version = "0.1.1"

app.Commands = []*cli.Command{
{
Expand Down

0 comments on commit 49f9001

Please sign in to comment.