Giter Site home page Giter Site logo

jails's Introduction

Jails

Jails is an experimental language server for the Jai programming language.

Features

  • Basic Go-To Definition
  • Autocomplete for available symbols (types, procedures etc)
  • Signature help for procedure calls
  • Error reporting from the compiler

In the future, the language server will support all other basic stuff you would get from any other LSP. Also, the plan is to support some specific Jai features from an editor support perspective like for example macro evaluation inside the editor etc.

Usage

Be aware that this language server is still pretty much unstable... Nonetheless, it can be quite useful even in this early stage of development.

Building

Compile the release version of the server with jai build - -release. Jails binary will be generated in the bin folder.

VSCode

  1. Install the Visual Studio Code Extension Manager with npm i -g @vscode/vsce
  2. You need to build Jails and install npm dependencies inside vscode_extension with npm i
  3. Run npm run compile to generate an extension bundle
  4. Run npm run pack:unix or npm run pack:windows.

This process will create jails-x.x.x.vsix which you can install and use.

Config file

You can create a config file jails.json inside your project root to specify:

  • roots (main.jai, build.jai) - this is used to set up files that are being parsed on init - you don't need to set this but it will improve your experience.
  • local modules (modules) - this tells the language server to also search for modules in these folders.
  • build_root - entry file for compiling (currently used for running compiler diagnostics - errors in the editor)
{
    "local_modules": [
        "modules"
    ],
    "roots": [
        "server/main.jai",
        "build.jai"
    ],
    "build_root": "build.jai"
}

Run (dev)

Compile server with jai build.jai or compile and run test VSCode with preinstalled LSP with jai build.jai - -vscode.

Dependencies

jails's People

Contributors

sogocze avatar rluba avatar puremourning avatar orangelightning219 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.