• Stars
    star
    11
  • Rank 1,694,829 (Top 34 %)
  • Language
    Ada
  • License
    MIT License
  • Created about 7 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Language Server Protocol for Ada

ada-lsp

Build Status reuse compliant

Language Server Protocol for Ada

The goal of this project is to provide implementation of Language Server Protocol (LSP) for Ada.

The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, goto definition, find all references and alike into the tool.

Install

Run:

git clone https://github.com/reznikmm/ada-lsp.git
cd ada-lsp
make

Dependencies

The dependency is

Status of the project

Ada binding of the protocol is (mostly) implemented, but only from server's point of view. There is a 'demo' to check how the binding works. The Ada Language Server isn't implemented yet.

Usage

Running a Demo

The demo let you see common usage of LSP for Ada and explore protocol messages.

Prepare Ada extension and run VS code:

make vscode
code --extensionDevelopmentPath=`pwd`/integration/vscode/ada/ `pwd`
  • Open source/protocol/lsp.ads
  • Open Output Console Ctrl-J and look for 'Ada Language Server' logs.
  • Print X' play with completion, press Ctrl+Space to see/hide the documentation. Select S'Adjacent to paste a snippet.
  • Move the mouse over Adjacent, tooltip will appear with Markdown inside.
  • Undo your changes and remove semicolon and save file. The editor will be populated with diagnostics. A bulb on the left side represent a CodeAction to correct the error. Click on it and fix the error.
  • Print pragma Assert ( - signature help appears. Print X, "Ops" and see how parameter description changes after comma.
  • Open context menu on LSP identifier and click Find all references. Two references will be displayed.
  • Open lst-types.ads. Open context menu on Generic_Optional on the line
with LSP.Generic_Optional;
  • Press Go to definition. Corresponding file will be opened.
  • Press Ctrl+Shft+O and see list of local symbols.
  • Press Ctrl+T and see list of global symbols.

Maintainer

@MaximReznik.

Contribute

Feel free to dive in! Open an issue or submit PRs.

License

MIT © Maxim Reznik

More Repositories

1

ada-howto

Collection of How-to documents for Ada
Jupyter Notebook
35
star
2

protobuf

The Google Protocol Buffers implementation in Ada
Ada
30
star
3

matreshka_archive

Matreshka is Ada framework to develop information systems
Ada
25
star
4

adalib

Standard Ada library specification as defined in Reference Manual
Ada
20
star
5

aarch64-alire-index

Alire port to aarch64
11
star
6

android_app_demo

Small demo for android app in Ada/webAssembly
JavaScript
11
star
7

jwt

JSON Web Token (JWT) implementation in Ada
Ada
10
star
8

ada-auth

A mirror of Ada Reference Manual sources
CartoCSS
9
star
9

onnx_runtime

Ada binding to ONNX runtime
Ada
8
star
10

jupyter

Jupyter Client API in Ada
Ada
5
star
11

coroutines

Coroutines is a library for non-preemptive multitasking in Ada
Ada
5
star
12

torrent

BitTorrent protocol implementation in Ada
Ada
4
star
13

increment

Incremental analysis in Ada
Ada
4
star
14

garlic

GNAT Library for Ada Distributed Environment (garlic)
Ada
4
star
15

acme-ada

ACME implementation in Ada
Ada
3
star
16

anagram

Grammar handling and parser generation Ada library
Ada
3
star
17

upload-bintray-action

Bintray file uploader action
JavaScript
3
star
18

advent-of-ada

Advent of Code solutions
Ada
3
star
19

ada_ru

Sources to build www.ada-ru.org site
Ada
3
star
20

webdriver

WebDriver enables introspection and control of web browsers
Ada
2
star
21

openwrt-gnat

Ada cross compiler for OpenWRT
Dockerfile
2
star
22

deflate

A deflate compression library
Ada
2
star
23

ada-tips

Collection of tip-of-the-day for Ada
Ada
2
star
24

als-alire-index

An Alire index to build ada_language_server
Shell
2
star
25

network

Ada asynchronous network library
Ada
2
star
26

rst-unparser

A tool to write a tree of RST elements as a ReStructuredText document.
Ada
1
star
27

slimp

Implementation of SlimProto TCP protocol
Ada
1
star
28

declarative-regions

Ada declarative regions library
Ada
1
star
29

debug-viz-demo

Debug Visualization Demo for Ada
Python
1
star
30

xtensa-alire-index

Alire index for xtensa LX7 toolchain
1
star
31

ak09940a

An Ada driver for 3-axis magnetic sensor AK09940A
Ada
1
star
32

icm20602

Driver for ICM-20602 gyroscope and accelerometer sensor
Ada
1
star
33

hmc5883

An Ada driver for 3-axis magnetic sensor
Ada
1
star
34

mount_photos

Mounting Google Photo albums with FUSE in Ada
Ada
1
star
35

ethernet

Root crate for ethernet drivers
Ada
1
star
36

enet_tap

ENet driver implementation over TUN/TAP device
Ada
1
star
37

ada-coco-r

Coco/R compiler generator in Ada
Ada
1
star
38

nmea-0183

NMEA 0183 message decoder
Ada
1
star
39

tftp

Trivial File Transfer Protocol (TFTP) implementation
Ada
1
star
40

bme280

Driver for BME280 humidity, pressure and temperature sensor
Ada
1
star
41

qmc5883

An Ada driver for 3-axis magnetic sensor QMC5883L
Ada
1
star