Commit graph

45 commits

Author SHA1 Message Date
Will Lillis
9df3f51785 fix(docs): update msrv
Some checks failed
Build Cargo Workspace / Build Cargo Workspace (push) Has been cancelled
Build Cargo Workspace / Generate schema (push) Has been cancelled
Build Documentation / Build Documentation (push) Has been cancelled
Lint Code / Run Tests / Run Unit Tests (push) Has been cancelled
Lint Code / Run Tests / TypeScript (push) Has been cancelled
2025-09-07 01:57:04 -04:00
WillLillis
5a1378d88e fix(docs): include mips and mars in list of architectures and assemblers 2025-07-04 16:42:55 -04:00
Will Lillis
54f9cb574b feat: add mars and mips sources to README
Some checks failed
Build Cargo Workspace / Build Cargo Workspace (push) Has been cancelled
Build Cargo Workspace / Generate schema (push) Has been cancelled
Build Documentation / Build Documentation (push) Has been cancelled
Lint Code / Run Tests / Run Unit Tests (push) Has been cancelled
Lint Code / Run Tests / TypeScript (push) Has been cancelled
2025-06-22 21:40:42 -04:00
Will Lillis
eada85f87e feat: support fasm 2025-04-13 16:37:58 -04:00
MustafaAamir
379e7ce7e4 Updated README.md with current MSRV (1.82.0) 2025-04-12 12:15:57 -04:00
Will Lillis
6d74045a11 fix(docs): minor README updates 2025-03-30 04:05:46 -04:00
WillLillis
8f439fbe04 feat: support AVR opcodes 2025-02-02 16:46:13 -05:00
Emanuel Oberholzer
1669f5d8b5
Added docs for NASM directives 'EXTERN' and 'GLOBAL' (#209)
* Added docs for NASM directives 'EXTERN' and 'GLOBAL'

* Regenerated serialized docs
2025-01-02 00:51:40 +00:00
Will Lillis
c350daa94f
fix(docs): add avr as possible arch value in README (#207) 2024-12-27 05:38:00 +00:00
Will Lillis
322bfbdd60
feat: add avr registers (#206) 2024-12-27 00:21:40 -05:00
Will Lillis
1cb383a5f3
feat: add avr assembler (#203) 2024-12-26 01:43:35 -05:00
Will Lillis
3cfc940d88
feat: add power-isa arch (#201) 2024-12-24 22:20:11 -05:00
Will Lillis
587aaee017
feat: add 6502 arch and ca65 assembler (#195) 2024-12-17 03:07:26 +00:00
Will Lillis
7ab549eec7
fix(docs): clarify usage of config fields in example (#180) 2024-11-21 23:35:37 +00:00
Will Lillis
b74df08776
chore: update docs to indicate gen-config subcommand (#179)
is only available on master branch
2024-11-21 22:55:17 +00:00
Will Lillis
712c9e659c
feat: Config builder (#163)
* feat: Config builder

* fix: Improve compiler validation logic, perf

Co-authored-by: Ulta-Code <mega.alpha100@gmail.com>

* More usability changes (#5)

* feat: start selecting project paths from the output_dir

* feat: Sort the entries, directories first

* project path collision validation

---------

Co-authored-by: Ulta-Code <mega.alpha100@gmail.com>
Co-authored-by: Luca Barbato <luca.barbato@gmail.com>
2024-11-04 19:56:08 -05:00
Will Lillis
5e0c38d2d7
feat: Multi config (#158)
* feat: multi-config

Add docs for multiconfig, validation of
project config paths

filter completions with config

Allow configs in subdirectories of other configs

trailing whitespace in README

Change config field name: `projects`->`project`

feat: Support file paths as `project` config paths

feat: User supplied compiler command in `.asm-lsp.toml`

feat: Improved assembler and isa config values

fix serialization of new config values

Update README

feat: Make `config.opts` optional

feat: Log error when multiple project configs point
to the same path

resolve lingering conflicts

post rebase lints

* feat: Add user-visible error on invalid config

improve config section in README

cut down on argument counts to functions, re-enable lint

Send warning to user if no config file is found

fix: Properly deserialize ARM64, fix diagnostics behavior

cut down on redundant code

Refactor main loop

Co-authored-by: Ulta-Code <mega.alpha100@gmail.com>

---------

Co-authored-by: Ulta-Code <mega.alpha100@gmail.com>
2024-11-03 16:40:30 -05:00
Fredrik Vaeng Røtnes
d2c511a7cc
Update README.md (#164) 2024-10-29 03:33:01 +00:00
Bernard Assan
2b093e893c
add aarch64 register info (#156)
* fix aarch64 link to documentation

* fix clippy warnings

* use workspaces so that rust-analyzer works in asm_docs_parsing

move common dependencies to the workspace

* Regenerate doc store serialized data

* packages refer to workspace for common values

* Update install instructions on README

* fix asm template not having space between opcode and operand

* fix warning in test

* move all from_utf8 to unchecked variant

most of our data is ascii so don't do unnecessary verification
follow suit and use ascii variant of trim
misc improvement for Atribute {key,value}
run asm_docs_parsing in release mode

* enable clippy across the codebase

fix most warnings and remove unnecessary clones
allow the most common warnings which are usually false positives

* Replace String::from_utf8 with unchecked version

* move serialized data into asm-lsp crate

To ensure that the serialized data is available on publish to crates.io
without needing an include section in Cargo.toml

❯ cargo package --list --allow-dirty
.cargo_vcs_info.json
Cargo.lock
Cargo.toml
Cargo.toml.orig
README.md
bin/main.rs
handle.rs
lib.rs
lsp.rs
parser.rs
serialized/directives/gas
serialized/directives/masm
serialized/directives/nasm
serialized/opcodes/arm
serialized/opcodes/riscv
serialized/opcodes/x86
serialized/opcodes/x86_64
serialized/opcodes/z80
serialized/registers/arm
serialized/registers/riscv
serialized/registers/x86
serialized/registers/x86_64
serialized/registers/z80
test.rs
types.rs
ustr.rs

* Start assembling the arm64 registers into an xml file

* Remove duplicates in completion and fix hover for mixed case identifiers

implemented the always lower idea and its working
removed the alt_names field from Register, Instruction and Directive
as that hack isn't needed anymore

* Complete general/simd/floating point registers for aarch64

Didn't border adding Scalar Vector Extension, Scalable Predicate,
Scalar Matrix Extension and System Registers
as I don't need them but It would be easy to add them when the need
araise

This will also ensure that PR branch gets done quickly

* add aarch64 config option

enable arm64 asm hover support

I think how the hovering functionality is structured isn't optimum
And I can't help but think about how we could use enums with matches
instead of alot of the if used to setup registers, instructions and
directives (the ifs make it easy to miss out on something) but I will
leave that for a future commit

* Update and add serialized data for arm64

* Add NASM in Header of README

* fix arm test

* 100% test passing

* move z80 xml generation into opcodes/raw

* add the new arm64 config option in README

* arm64: support hover for vector registers

* arm64: Support hover on lower field of a vector register

Co-authored-by: WillLillis <will.lillis24@gmail.com>

* chore: Temporarily ignore `irrefutable_let_patterns` lints

* chore: Ignore precommit hook ignore list with new serialized docs location

---------

Co-authored-by: WillLillis <will.lillis24@gmail.com>
Co-authored-by: WillLillis <wlillis@umass.edu>
2024-10-22 01:16:15 +00:00
Will Lillis
2fe2f9ae17
Update example config to use zig (#152) 2024-10-15 01:57:17 +00:00
Will Lillis
228f054fd3
chore: Add note about precompiled binaries in README's 'Installation' section (#146) 2024-09-09 01:15:43 +00:00
Will Lillis
4158ce4168
fix: proper usage of compile_flags.txt for diagnostics (#142)
* fix: proper usage of compile_flags.txt for diagnostics

* feat: default diagnostics
2024-09-04 00:46:09 +00:00
Will Lillis
c609d4ec8a
fix: add masm, nasm to example config in README (#135) 2024-08-30 10:42:12 -04:00
Will Lillis
e905fb0e18
feat: make config items optional (#132)
Add note to README
2024-08-29 22:32:30 -04:00
Will Lillis
1ee550aff9
feat: MASM and NASM directive support (#124) 2024-08-27 00:06:04 -04:00
Will Lillis
72a0328e49
feat: RISCV support (#123) 2024-08-21 18:20:06 -04:00
Will Lillis
f5e99ce5e5
feat: ARM support (#118) 2024-08-17 13:07:58 -04:00
Will Lillis
ecb60f216e
Diagnostics (#98)
* feat: Diagnostics support

* chore: add diagnostics demo, update README
2024-07-17 23:43:56 -04:00
Will Lillis
565d938b63
feat: VSCode dev support (#97)
add typescript ci
2024-07-15 03:58:45 +00:00
Will Lillis
38a7dfeb20
General cleanup around the project (#87) 2024-07-04 12:41:16 -04:00
Will Lillis
181681708c
Add Z80 Support (#59)
* First pass Z80 register xml file

Hover support for Z80 registers

Remove extraneous semicolons

Short Z80 register descriptions

Initial commit for z80 instructions xml and its generator.
Co-authored-by: gilbertfrancois <>

Checkpoint commit, sketching out z80 data structs

Appease clippy

Chore: Update opcodes (#40)

* Chore: Update opcodes xml files

* Update parser for updated xml files

Cleaning up

More clean up, syncing up with master branch

Simplifying things...

Most z80 features working, need to polish instruction hover support

Hover display tweaks, correct URL escaping, formatting

Z80 documentation now opens at correct section

Initial work on instruction descriptions

Instruction descriptions done

Z80 Signature Help support

Fix logic bug for file word grab

* Cleanup
2024-06-29 11:34:24 -04:00
Chris
eba192f0a6
docs: .git in root dir requirement (#79)
* docs: `.git` in root dir requirement

* Add trivial edit to source file

* Remove trailing whitespace

---------

Co-authored-by: Will Lillis <wlillis@umass.edu>
2024-06-29 10:19:56 -04:00
Will Lillis
8ba7a065f3
feat: View References (#54)
* feat: view references

* Add README demo
2024-01-19 11:57:53 -05:00
WillLillis
7e8d587ae1 fix: README 2023-12-22 18:33:06 -05:00
Will Lillis
77503f568c
feat: goto definition (#49)
Clean up comments

Replace use of get_word_from_file_params() in get_goto_def_resp()

Use lsp_pos_of_point()

Refactor get word logic into function
2023-12-22 12:20:41 -05:00
Will Lillis
e9a4dbff5f
feat: Global config (#48)
Remove unecessary clone

Add log when potentially creating directories along config path
2023-12-22 10:05:18 -05:00
Will Lillis
c11dc34110
feat: signature help (#35)
* feat: signature help

* Integrate incremental parsing with signature help

* Add demo gif and instructions to README

Fix markdown lints
2023-12-20 18:15:26 -05:00
Will Lillis
fb71a59678
Feat autocomplete (#29) 2023-11-26 12:53:31 -05:00
Nikos Koukis
ce5dfde754 Add badges to README 2023-10-01 19:34:03 +03:00
Nikos Koukis
0e44dd8fc0 v0.4.0 2023-10-01 19:21:51 +03:00
Will Lillis
2943e33e3b Specify asm-lsp target configuration via config file.
Enable specifying which assemblers and which architectures to be enabled/disabled when interacting with the LSP server. Use this feature to e.g., disable showing the `go` opcode documentation or to show only the documentation of the x86_64 architecture.

Closes #4
2023-10-01 12:04:34 +03:00
Nikos Koukis
3d7a8ead7c Add to README 2020-07-29 08:13:41 +01:00
Nikos Koukis
32874742eb Change binary name, add to README 2020-07-27 10:46:32 +01:00
Nikos Koukis
1e1eae43f7 Rename tool look-asm -> asm-lsp 2020-07-26 18:22:19 +01:00
Nikos Koukis
7330e4dc63 Switch to rust 2020-07-13 07:54:40 +01:00