/fountain-lsp-server

LSP Language Server for Fountain Screenplay writing language

Primary LanguageTypeScriptMozilla Public License 2.0MPL-2.0

icon Fountain Language Server

This is a Language Server for fountain files, a simple markup syntax for writing, editing, and sharing screenplays in plain, human-readable text.

The language server is built on vscode-languageserver but should be flexible to use with other IDEs.

Features

  • Code Completions for Title Page attributes, scene headings, etc.
  • CodeLens support for characters, scenes and locations.
  • Statistics to be consumed by a webview, by character, location and scene; and more granularly by character gender and race.

Running the language server

If installed through NPM then there should be a binary fountain-lsp-server in node_modules/.bin

Otherwise you can use node dist/bundle.cjs.js [options] from the package file in GitHub releases or import dist/server from the node module to roll it into your own application.

Additional information

The project introduces the concept of a .fountainrc file to specify additional details about characters, the schema for which is in the root of this project.

The extension will also attempt to guess gender of characters based on name, this only supports en and it locales and makes incorrect assumptions often (e.g. Sam is always regarded as a male name, even though it can be a shortened form of Samantha), but provides a reasonable basis as a default to be overriden.

IDE Extensions

If you build an IDE Extension based on this language server implementation, please feel free to share it and I'll include it in this list.