• Stars
    star
    209
  • Rank 188,325 (Top 4 %)
  • Language
    Rust
  • License
    BSD 2-Clause "Sim...
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

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

Repository Details

Language server for NASM/GAS/GO Assembly

Language Server for GAS/GO Assembly

crates.io Tests

Goal

Provide hovering, autocompletion, signature help, go to definition, and view references for assembly files written in the GAS/NASM or GO assembly flavors. It supports assembly files for the x86 or x86_64 instruction sets.

This tool can serve as reference when reading the assembly output of a program. This way you can query what each command exactly does and deliberate about whether the compiler is producing the desired output or whether you have to tweak your code for optimisation.

Installation

Using cargo

Install using the cargo package manager, either from crates.io or from github:

cargo install asm-lsp
# or to get the latest version from github
cargo install --git https://github.com/bergercookie/asm-lsp

Set up as a language server

Add a section like the following in your settings.json file:

"asm-lsp": {
    "command": "asm-lsp",
    "filetypes": [
        "asm", "s", "S"
    ]
}

[OPTIONAL] Configure via .asm-lsp.toml

Add a .asm-lsp.toml file like the following to your project's root directory and/or ~/.config/asm-lsp/ (project configs will override global configs) to selectively target specific assemblers and/or instruction sets.

version = "0.1"

[assemblers]
gas = true
go = false

[instruction_sets]
x86 = false
x86_64 = true

Demos / Features Documentation

Hovering / Documentation support

Autocomplete

Goto Definition

View References

Signature Help

  • Triggering signature help is dependent on your editor and LSP client.
    • Using Neovim's built in LSP client, this can be done via the command :lua vim.lsp.buf.signature_help().
    • Using coc, this issue comment suggests the remap inoremap <silent> ,s <C-r>=CocActionAsync('showSignatureHelp')<CR> to trigger signature help in insert mode.

Acknowledgements

Current rust package builds on top of the opcodes python package

More Repositories

1

syncall

Bi-directional synchronization between services such as Taskwarrior, Google Calendar, Notion, Asana, and more
Python
402
star
2

awesome-albert-plugins

Unofficial collection of plugins for the Albert launcher (https://albertlauncher.github.io/).
Python
146
star
3

vim-debugstring

Debug printf()-style at the speed of light
Vim Script
34
star
4

item_synchronizer

🔄 Synchronize items from two different sources
Python
11
star
5

Pump3000

Graphical User Interface (GUI) for the Cavro XP3000 Pump series
Python
8
star
6

tw-hooks

Collection of Taskwarrior hooks + detection and registration mechanism
Python
7
star
7

slam-rs

Toy implementation of a SLAM algorithm in rust
Rust
6
star
8

robot-concepts

C++20 concepts for common robotics/computer vision datatypes
C++
6
star
9

vim-deb-preview

Preview debian packages with vim
Vim Script
4
star
10

csl_mr_slam

Scripts for the initializaiton and configuration of MR-SLAM on the robot agents of the csl lab
Python
4
star
11

vim-dotfiles

Repo to hold my vim-dotfiles
Vim Script
3
star
12

gmaps-cli

Interact with google-maps from the command line using Selenium
Python
3
star
13

Flight-Mechanics

Project work for course SD2805, Flight Mechanics - KTH
MATLAB
3
star
14

taskw-ng

Next Generation Taskwarrior Python API
Python
3
star
15

xkcd-albert-plugin

This project has been merged to awesome-alber-plugins
Python
3
star
16

jira-albert-plugin

Interact with Jira from the albert launcher
Python
2
star
17

mendeley2calibre

Conversion tool for migrating a Mendeley DB to calibre
Python
2
star
18

taskwarrior-albert-plugin

This project has been merged to https://github.com/bergercookie/awesome-albert-plugins
Python
2
star
19

colcon-cargo-ros

Compile and use Rust packages in ROS2 projects
Python
1
star
20

zoopla-albert-plugin

Zoopla - Search Properties - Albert plugin
Python
1
star
21

python_package_cookiecutter

Python Package Template using cookiecutter
Python
1
star
22

googlehash-template

Rough template repository for the HashCode competition
Python
1
star
23

docker-ubuntu-sshd

Create a simple SSH Server on Ubuntu for Docker
Dockerfile
1
star
24

vim-debugstring-present

Short demo of vim-debugstring
1
star
25

albert-plugin-cookiecutter

Albert python plugins bootstrapping
Python
1
star
26

catkin_ws

Container repo for packages needed to run multi-robot graphSLAM
Python
1
star
27

taskwarrior-deno

TypeScript/Deno API for the TaskWarrior Task Manager
TypeScript
1
star
28

vcfxplr

CLI tool to explore and export data from a VCF / vCard file
Python
1
star
29

vim-notes2wiki

vim-notes => vimwiki conversion script
Python
1
star
30

vimduino

Arduino development in vim made easy
Vim Script
1
star
31

fish_plugin_cookiecutter

A cookiecutter template for creating fish plugins
Shell
1
star
32

rviz_generator

Dynamic generation of ROS Visualizer (rviz) files
Python
1
star
33

slam_ws

C++
1
star
34

hashcode-server

Python
1
star
35

vim-plugin-cookiecutter

Cokiecutter for generating vim plugins
Shell
1
star
36

voice_to_taskwarrior

Create tasks from audio files
Rust
1
star