onivim / oni

Oni: Modern Modal Editing - powered by Neovim
https://www.onivim.io
MIT License
11.35k stars 299 forks source link

[WIP] Feature/token color trie #2621

Open akinsho opened 6 years ago

akinsho commented 6 years ago

Based off of #2565 this PR introduces a trie data structure to handle tokens read in from the theme, inspired by this vscode strategy The reasoning being in summary, a trie allows us to resolve the complicated inheritance like pattern for tokens which is how textmate/vscode reads in themes e.g. if string is => { color: red, style: italic } and string.quoted is => { color: blue }, then when read out of the tree the settings for this will be { color: blue, style: italic // inherited } (simplification * 2)

Outstanding:

codecov[bot] commented 6 years ago

Codecov Report

Merging #2621 into master will increase coverage by 0.1%. The diff coverage is 67.23%.

Impacted file tree graph

@@           Coverage Diff            @@
##           master   #2621     +/-   ##
========================================
+ Coverage    45.3%   45.4%   +0.1%     
========================================
  Files         361     362      +1     
  Lines       14571   14678    +107     
  Branches     1912    1930     +18     
========================================
+ Hits         6601    6665     +64     
- Misses       7746    7785     +39     
- Partials      224     228      +4
Impacted Files Coverage Δ
browser/src/Editor/BufferHighlights.ts 16.66% <ø> (ø) :arrow_up:
...es/SyntaxHighlighting/SyntaxHighlightingReducer.ts 30.95% <0%> (-4.19%) :arrow_down:
browser/src/Editor/NeovimEditor/NeovimEditor.tsx 8.62% <0%> (ø) :arrow_up:
browser/src/Utility.ts 46.32% <0%> (-0.7%) :arrow_down:
...ices/SyntaxHighlighting/SyntaxHighlightingStore.ts 25.86% <0%> (-0.46%) :arrow_down:
browser/src/neovim/NeovimInstance.ts 5.47% <0%> (ø) :arrow_up:
...Services/SyntaxHighlighting/TokenThemeProvider.tsx 90.62% <100%> (ø) :arrow_up:
.../Services/SyntaxHighlighting/SyntaxHighlighting.ts 22.91% <25%> (-1%) :arrow_down:
browser/src/Services/TokenColorsTrie.ts 69.31% <69.31%> (ø)
browser/src/Services/TokenColors.ts 61.53% <77.77%> (+4.39%) :arrow_up:
... and 6 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 5f8e163...28b3539. Read the comment docs.