Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace sqflint with @bi-tools #151

Draft
wants to merge 43 commits into
base: master
Choose a base branch
from
Draft

Conversation

SkaceKamen
Copy link
Owner

@SkaceKamen SkaceKamen commented Feb 10, 2024

@bi-tools is set of libraries to interact with Arma-related files made by me implemented in typescript. The primary goal of the libraries is to support this extension.

Goals:

  • get rid of Java dependency
  • improve parsing to support all SQF constructs (sqflint is a bit limited right now)
  • improve preprocessor to support all macros and commands
  • separate parsing, linting and analysis into their own modules:
    • parser - only generates AST
    • linter - generates warnings based on AST
    • analyser - builds info used by extension, such as variable list, etc
  • improve configuratibility
  • possibly introduce refactoring utilities
  • refactor the language server code a bit, it's a mess currently

State:

  • implement pre-processor
  • implement fully featured SQF parser
  • implement basic SQF analyzer (just variables now)
  • implement basic SQF linter
  • integrate preprocessor, SQF parser and analyzer into extension
  • ANALYZER: implement context-based variables checker
  • LINTER: implement more complex rules
  • PARSER: improve error reporting
  • PARSER: implement error recovery
  • PREPROCESSOR: fix source maps
  • integrate linter with extension
  • properly integrate errors with extension (accepting errors from different files when parsing a single file)

@SkaceKamen SkaceKamen self-assigned this Feb 10, 2024
@SkaceKamen
Copy link
Owner Author

The packages are now public here: https://github.com/SkaceKamen/bi-tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant