Giter Site home page Giter Site logo

alive-lsp's Introduction

Alive Language Server

This is the language server for Alive: The Average Lisp VSCode Environment.

Running the server

For newcomers it could be difficult to start with Common LISP specially if the tech stack is not known yet. These instructions helps to have the server up and running as easy as possible. Steps are:

  1. Install your LISP Implementation
  2. Install a library/package manager
  3. Clone this repository
  4. Load the alive-lsp project and start the server

Install your LISP Implementation

Here let's assume we install sbcl

# debian
apt-get install sbcl

# macos
brew install sbcl

Install a library/package manager

Here let's assume we use quicklisp

curl -O https://beta.quicklisp.org/quicklisp.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp.asc
gpg --verify quicklisp.lisp.asc quicklisp.lisp
sbcl --load quicklisp.lisp
# ....
* (quicklisp-quickstart:install)
# it is also advisable to:
* (ql:add-to-init-file)

Clone this repository

Previous step should have created a directory in your home directory: ~/quicklisp, unless you decided to install it in another directory

(quicklisp-quickstart:install :path "~/.quicklisp")

just keep in mind the directory, let's called here $QUICKLISP_HOME. Let's clone this repository in $QUICKLISP_HOME/local-projects, so that it will be discovered automatically by Quicklisp when loading the project:

git clone [email protected]:nobody-famous/alive-lsp.git $QUICKLISP_HOME/local-projects/alive-lsp

Load the alive-lsp project and start the server

sbcl
This is SBCL 2.2.11, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* (ql:quickload "alive-lsp")
To load "alive-lsp":
  Load 1 ASDF system:
    alive-lsp
; Loading "alive-lsp"
.
("alive-lsp")
* (alive/server::start :port 8006)
#<SB-THREAD:THREAD "Alive LSP Server" RUNNING {70069B3BE3}>

Your language server works! You can stop it now (Ctrl + C) and proceed to properly configure you Alive Extension in vscode:

{
    "alive.lsp.startCommand": [
        "sbcl",
        "--eval",
        "(require :asdf)",
        "--eval",
        "(asdf:load-system :alive-lsp)",
        "--eval",
        "(alive/server:start)"
    ]
}

note that alive.lsp.startCommand could also be the one used before in the REPL session, something like:

{
    "alive.lsp.remote.port": "8006",
    "alive.lsp.startCommand": [
        "sbcl",
        "--noinform",
        "--eval",
        "ql:quickload \"alive-lsp\")",
        "--eval",
        "(alive/server::start :port 8006)"
    ]
}

just be sure to also configure the port if you specify one on the command for starting the server.

Using the server outside of vscode

Take a look at thread #31

Developing Alive-lsp Code

If you are interesting in making changes to Alive-lsp you should take a look at the Development Notes.

alive-lsp's People

Contributors

nobody-famous avatar madkins23 avatar davidmpaz avatar

Watchers

 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.