imba / imba/imba

Consolidate use of monarch lexer

Open
#689 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
6.5k
Forks
183
Avg merge
4h 10m
Merged PRs (30d)
3

Description

We currently have three(!) nearly identical copies of the imba monarch lexer in the repo. Right now it is mostly used in the typescript-imba-plugin, but we also have a need for it in vscode-imba and various other tooling related projects. To clean this up we need to ...

- [ ] Make typescript-imba-plugin depend on the imba-monarch code and remove `typescript-imba-plugin/src/lexer` dir
- [ ] Make imba depend on imba-monarch code and remove the `imba/src/program` files
- [ ] Publish imba-monarch as a separate package
- [ ] Use imba-monarch in vscode-imba to do semantic coloring outside of the typescript-imba-plugin

Contributor guide

Open the contributing guide

Research direction

Start by comparing the three lexer copies, especially typescript-imba-plugin/src/lexer and the imba/src/program files, and identify the existing imba-monarch code. Review the TypeScript plugin, imba, and vscode-imba package boundaries before deciding how the shared package should be published. Done means the listed consumers use imba-monarch, duplicate files are removed, the package is published, and vscode-imba supports semantic coloring outside the plugin.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, typescript, vscode
Domain
developer-experience, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.