* 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>
* 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>
* 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
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