Skip to content

Conversation

@Jason3S
Copy link
Collaborator

@Jason3S Jason3S commented Jan 7, 2026

Pull request overview

This PR adds support for loading btrie (binary trie) dictionaries in cspell-lib, enabling more efficient dictionary storage and loading. The changes also include enhancements to the table utility for better formatting and a refactoring of performance measurement tracking to use a hierarchical structure.

  • Added btrie path resolution and loading support in DictionarySettings and DictionaryLoader
  • Enhanced the table utility with column alignment, indentation, and title support
  • Refactored performance measurements to use a hierarchical tree structure instead of flat key-based tracking
  • Improved performance reporting with color coding and additional metrics

@github-actions github-actions bot added the fix label Jan 7, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Jan 7, 2026

Performance Report

Daily Performance
xychart-beta
    title Files Per Second by Day
    y-axis Files per Second
    x-axis Date [Dec-8, Dec-9, Dec-10, Dec-13, Dec-14, Dec-15, Dec-16, Dec-20, Dec-22, Dec-23, Dec-24, Dec-27, Dec-28, Dec-29, Dec-30, Jan-1, Jan-4, Jan-5, Jan-6, Jan-7]
    bar [158.24, 160.26, 160.13, 162.46, 160.30, 159.32, 159.99, 160.32, 171.41, 173.30, 173.54, 170.88, 173.10, 172.87, 170.63, 172.55, 170.72, 165.99, 165.55, 169.25]
    line [18.49, 18.92, 19.04, 18.41, 18.71, 17.35, 18.44, 18.66, 19.39, 19.24, 18.95, 18.61, 19.20, 19.16, 18.64, 18.56, 18.69, 15.82, 15.37, 16.77]
    line [142.70, 144.08, 143.97, 142.44, 148.72, 148.74, 148.66, 145.81, 145.83, 151.65, 150.82, 149.41, 147.54, 148.32, 148.24, 148.81, 152.12, 144.06, 141.46, 147.66]
    line [51.18, 48.94, 51.93, 50.78, 49.91, 50.66, 50.34, 50.02, 51.61, 51.21, 51.38, 49.64, 48.60, 49.52, 48.09, 50.03, 48.82, 46.25, 44.36, 47.95]
    line [23.99, 23.97, 23.56, 24.27, 23.97, 21.89, 24.77, 24.75, 25.98, 24.78, 24.02, 24.07, 23.90, 24.05, 23.79, 23.47, 23.84, 21.71, 20.06, 22.57]
    line [93.03, 94.71, 95.93, 94.05, 97.42, 87.40, 93.20, 92.02, 98.77, 95.06, 94.41, 95.55, 97.07, 96.22, 92.57, 92.92, 91.62, 91.70, 90.24, 94.37]
    line [112.86, 110.11, 114.79, 114.58, 111.22, 109.33, 106.79, 113.91, 116.30, 113.89, 119.27, 121.25, 119.32, 118.60, 119.88, 120.18, 120.91, 116.77, 113.59, 114.42]
    line [114.43, 117.93, 116.17, 113.85, 113.19, 111.86, 113.23, 116.22, 119.95, 116.76, 117.75, 118.71, 118.58, 117.32, 112.42, 116.77, 113.28, 107.29, 110.98, 112.84]
    line [166.49, 162.27, 148.64, 164.74, 167.10, 169.90, 168.25, 171.20, 165.98, 169.49, 175.43, 173.51, 166.13, 173.69, 176.28, 174.86, 172.30, 168.35, 166.48, 159.80]
    line [202.32, 202.37, 184.12, 199.02, 199.50, 195.58, 198.56, 202.04, 205.76, 202.04, 203.32, 201.04, 202.44, 203.10, 195.80, 206.74, 207.91, 185.17, 183.38, 200.07]
    line [206.03, 204.37, 194.91, 205.14, 200.36, 207.64, 202.85, 200.31, 210.29, 210.04, 207.76, 200.78, 205.77, 199.55, 199.57, 206.34, 210.39, 198.78, 192.42, 196.70]
    line [193.15, 186.55, 193.19, 192.23, 185.43, 191.26, 188.26, 189.10, 196.56, 199.42, 199.83, 198.90, 201.82, 194.83, 201.20, 199.08, 201.68, 196.07, 191.44, 194.50]
    line [29.50, 29.81, 30.70, 31.34, 29.78, 30.86, 29.89, 30.20, 33.22, 32.90, 33.40, 32.96, 33.38, 32.90, 31.64, 32.05, 31.87, 30.32, 30.13, 30.50]
    line [313.58, 317.30, 295.96, 306.54, 308.67, 318.29, 308.47, 312.68, 311.01, 311.87, 322.19, 317.56, 317.24, 315.38, 325.99, 315.10, 321.37, 318.36, 304.42, 312.50]
    line [203.69, 197.75, 183.65, 201.42, 192.31, 202.71, 196.90, 201.49, 199.06, 199.67, 194.62, 190.28, 203.79, 203.98, 206.16, 191.99, 203.06, 195.28, 197.18, 200.47]
    line [65.32, 69.78, 72.32, 70.99, 69.49, 68.20, 68.29, 71.18, 72.28, 72.81, 72.16, 72.22, 72.29, 71.63, 70.43, 69.31, 70.55, 65.48, 65.68, 66.84]
    line [127.82, 130.48, 134.87, 129.94, 136.83, 140.59, 128.00, 132.13, 140.04, 140.36, 136.98, 135.57, 135.50, 134.25, 129.01, 139.25, 139.78, 129.55, 131.60, 133.08]
    line [213.42, 215.72, 212.77, 206.57, 216.35, 210.81, 207.51, 213.81, 235.09, 232.12, 236.13, 235.71, 228.72, 232.65, 236.79, 238.66, 239.84, 237.65, 227.69, 240.19]
    line [76.65, 75.94, 76.12, 76.57, 75.62, 71.86, 75.70, 72.52, 79.52, 79.75, 79.57, 78.19, 78.53, 81.17, 72.47, 80.44, 78.06, 78.74, 77.69, 77.47]
    line [187.46, 185.27, 181.05, 182.93, 185.74, 173.94, 185.68, 184.19, 188.28, 188.11, 196.54, 189.53, 183.55, 193.13, 194.30, 182.73, 194.72, 192.90, 184.51, 181.77]
    line [70.99, 71.64, 73.38, 70.10, 71.99, 68.96, 71.11, 72.00, 74.62, 76.21, 75.66, 76.28, 80.16, 75.45, 77.29, 76.83, 75.96, 77.04, 75.98, 75.59]
    line [128.02, 124.91, 128.75, 126.25, 125.99, 122.54, 125.77, 120.95, 129.07, 131.35, 128.71, 129.73, 130.21, 126.25, 125.32, 128.46, 125.36, 119.96, 121.55, 127.17]
    line [14.37, 14.53, 14.61, 14.25, 14.42, 14.66, 14.20, 14.14, 14.58, 14.66, 13.81, 14.51, 13.39, 13.58, 14.12, 14.33, 14.46, 13.75, 12.60, 13.79]
    line [104.81, 110.68, 102.65, 110.81, 107.51, 105.11, 109.29, 110.23, 118.20, 116.66, 113.51, 116.56, 110.18, 116.43, 113.57, 116.81, 116.74, 114.96, 116.34, 117.68]
    line [80.02, 85.30, 82.71, 84.32, 82.91, 77.95, 81.87, 81.89, 89.30, 90.84, 89.17, 86.07, 86.04, 90.94, 91.20, 88.38, 89.72, 82.57, 85.29, 87.37]
    line [195.46, 191.88, 199.25, 200.18, 192.55, 195.85, 196.96, 197.31, 203.68, 215.88, 203.82, 209.47, 208.55, 206.80, 208.32, 210.94, 208.87, 204.66, 200.55, 201.79]
    line [146.38, 144.41, 148.76, 149.26, 148.44, 146.25, 144.57, 148.51, 160.26, 155.20, 157.30, 154.76, 157.76, 156.45, 156.97, 156.48, 161.27, 156.23, 155.16, 161.31]
    line [22.93, 23.26, 21.71, 22.48, 22.26, 24.16, 21.86, 22.99, 23.86, 22.95, 22.15, 22.59, 22.93, 22.71, 21.96, 22.43, 22.76, 19.93, 19.65, 21.35]
    line [229.14, 227.27, 231.37, 242.80, 219.56, 233.62, 231.32, 236.32, 236.26, 240.94, 253.96, 249.85, 237.45, 249.30, 236.26, 250.59, 240.41, 245.35, 243.40, 247.71]
    line [119.17, 112.82, 116.99, 116.61, 109.61, 115.93, 113.66, 115.36, 122.68, 121.26, 119.81, 119.36, 122.21, 121.33, 118.71, 119.46, 120.59, 115.93, 111.61, 115.57]
    line [333.69, 321.17, 305.21, 329.78, 336.28, 339.96, 335.03, 330.81, 346.52, 335.23, 343.48, 342.97, 326.49, 346.96, 341.41, 349.59, 332.44, 321.99, 323.13, 331.66]
    line [37.87, 36.13, 38.10, 36.47, 38.38, 37.81, 37.32, 38.13, 39.99, 39.24, 39.22, 39.13, 37.99, 37.43, 37.30, 38.53, 37.44, 35.32, 32.27, 37.15]
    line [235.13, 236.77, 244.11, 232.83, 233.41, 237.39, 235.87, 236.73, 241.85, 239.59, 240.67, 245.15, 245.04, 246.20, 235.52, 245.54, 241.43, 227.89, 226.93, 239.24]
    line [164.08, 161.66, 171.02, 169.99, 161.97, 169.28, 168.79, 164.45, 163.90, 173.08, 173.52, 171.67, 165.07, 170.82, 168.89, 168.46, 160.87, 163.97, 157.39, 162.03]
    line [31.99, 31.99, 30.84, 32.08, 31.89, 31.67, 31.01, 31.00, 31.79, 31.95, 32.72, 33.00, 31.56, 31.04, 31.19, 31.58, 30.98, 28.44, 27.47, 29.81]
    line [124.96, 118.90, 125.77, 122.50, 124.97, 121.63, 124.44, 114.40, 117.66, 113.42, 116.57, 120.86, 116.04, 115.61, 111.25, 114.64, 107.26, 104.85, 102.99, 109.96]
    line [295.84, 293.27, 283.38, 296.25, 298.40, 299.27, 280.90, 293.45, 278.89, 296.00, 294.23, 289.77, 295.71, 297.33, 290.64, 293.31, 297.11, 291.75, 279.45, 289.96]
    line [163.37, 162.01, 157.69, 162.41, 162.92, 155.61, 157.24, 162.25, 174.81, 169.46, 179.44, 172.82, 176.92, 167.34, 176.43, 176.94, 178.99, 168.22, 166.87, 175.96]
    line [150.95, 152.99, 153.72, 160.91, 157.90, 164.74, 161.04, 164.69, 164.20, 175.57, 172.74, 173.87, 177.24, 172.99, 166.08, 180.17, 181.21, 173.75, 179.71, 179.69]
    line [71.59, 73.55, 75.54, 73.95, 75.07, 76.77, 72.26, 69.84, 77.03, 74.27, 74.27, 73.83, 75.96, 75.41, 73.52, 70.94, 72.13, 67.68, 66.21, 69.90]
    line [6.00, 6.03, 6.11, 5.69, 6.12, 5.85, 6.27, 5.94, 6.19, 6.23, 6.06, 5.80, 6.19, 6.04, 6.09, 6.29, 6.13, 5.79, 5.41, 5.76]
    line [374.69, 369.34, 374.83, 359.05, 350.76, 385.22, 356.23, 361.41, 363.52, 371.74, 360.07, 349.58, 358.00, 357.09, 358.22, 365.46, 375.72, 366.42, 366.13, 362.25]
    line [179.95, 179.31, 188.38, 180.77, 185.77, 186.35, 184.33, 182.33, 191.53, 189.75, 189.98, 177.07, 192.83, 190.79, 182.79, 190.84, 188.67, 194.33, 177.58, 178.76]
    line [90.09, 95.39, 94.62, 99.56, 95.79, 93.99, 95.03, 91.66, 95.50, 94.32, 94.29, 94.73, 94.34, 95.29, 95.11, 98.41, 97.41, 93.11, 86.98, 96.31]
    line [216.21, 215.29, 206.31, 212.61, 210.51, 204.56, 210.18, 211.34, 200.66, 223.22, 223.16, 220.54, 207.84, 221.69, 222.09, 227.69, 222.11, 226.42, 218.19, 222.77]
    line [46.02, 43.67, 43.68, 45.02, 45.75, 43.43, 44.94, 44.85, 45.35, 43.98, 45.75, 48.03, 44.47, 43.53, 43.39, 44.67, 43.92, 40.38, 37.83, 41.62]
    line [62.39, 60.36, 64.84, 65.11, 62.93, 65.98, 63.02, 64.70, 64.39, 64.92, 64.92, 65.76, 63.97, 65.18, 60.36, 63.48, 65.17, 62.63, 59.94, 63.38]
    line [237.38, 239.25, 224.99, 230.85, 236.16, 237.46, 237.06, 237.81, 238.36, 240.26, 242.42, 235.97, 234.05, 235.94, 244.60, 237.90, 238.37, 234.19, 223.75, 223.81]
    line [44.87, 45.90, 44.67, 46.00, 48.05, 47.07, 45.85, 42.75, 47.52, 47.21, 45.81, 45.88, 45.34, 46.09, 44.04, 43.96, 44.61, 40.41, 39.77, 41.24]
    line [138.09, 144.82, 146.07, 144.49, 139.02, 141.78, 142.36, 140.50, 151.95, 150.33, 152.02, 150.72, 154.90, 153.82, 147.24, 149.99, 145.79, 146.47, 145.32, 147.89]
    line [139.19, 142.56, 144.70, 146.06, 142.91, 137.61, 141.27, 139.39, 164.22, 164.25, 165.65, 160.55, 167.52, 164.35, 162.61, 160.21, 152.67, 150.17, 151.88, 155.91]
Loading
Time to Process Files
Repository Elapsed Min/Avg/Max SD SD Graph
AdaDoom3/AdaDoom3 3.38 3.0 / 3.3 / 3.6 0.16 ┣━━┻━━╋━●┻━━┫
alexiosc/megistos 8.78 7.4 / 8.1 / 9.9 0.46 ┣━━┻━━╋━━┻━●┫
apollographql/apollo-server 2.64 2.5 / 2.7 / 3.1 0.11 ┣━┻●━╋━━┻━┫
aspnetboilerplate/aspnetboilerplate 9.60 9.3 / 10.1 / 12.5 0.61 ┣━━●━━╋━━┻━━┫
aws-amplify/docs 12.75 12.4 / 13.2 / 15.9 0.59 ┣━━●━━╋━━┻━━┫
Azure/azure-rest-api-specs 11.03 9.7 / 10.4 / 11.7 0.45 ┣━━┻━━╋━━┻●━┫
bitjson/typescript-starter 1.20 1.0 / 1.1 / 1.4 0.09 ┣━┻━━╋━━●━┫
caddyserver/caddy 3.59 3.4 / 3.8 / 4.3 0.16 ┣━━●━━╋━━┻━━┫
canada-ca/open-source-logiciel-libre 1.17 1.1 / 1.2 / 1.4 0.07 ┣━┻━━●━━┻━┫
chef/chef 5.92 5.7 / 6.0 / 6.8 0.25 ┣━━┻━●╋━━┻━━┫
dart-lang/sdk 59.29 58.5 / 64.3 / 75.3 3.84 ┣━━●┻━━━╋━━━┻━━━┫
django/django 15.26 14.4 / 15.4 / 17.0 0.56 ┣━━┻━●╋━━┻━━┫
eslint/eslint 10.33 9.9 / 10.6 / 11.3 0.34 ┣━━┻●━╋━━┻━━┫
exonum/exonum 3.59 3.5 / 3.7 / 4.1 0.13 ┣━━┻●━╋━━┻━━┫
flutter/samples 16.90 15.6 / 16.6 / 17.7 0.57 ┣━━┻━━╋━●┻━━┫
gitbucket/gitbucket 3.63 3.3 / 3.5 / 4.0 0.14 ┣━━┻━━╋━●┻━━┫
googleapis/google-cloud-cpp 136.38 123.1 / 137.5 / 155.9 9.07 ┣━━━┻━━●╋━━━┻━━━┫
graphql/express-graphql 1.22 1.1 / 1.2 / 1.4 0.09 ┣━┻━━╋●━┻━┫
graphql/graphql-js 2.87 2.8 / 2.9 / 3.2 0.11 ┣━┻━●╋━━┻━┫
graphql/graphql-relay-js 1.24 1.1 / 1.2 / 1.5 0.09 ┣━┻━━╋●━┻━┫
graphql/graphql-spec 1.34 1.2 / 1.4 / 1.6 0.08 ┣━┻━●╋━━┻━┫
iluwatar/java-design-patterns 12.62 12.1 / 13.0 / 14.4 0.52 ┣━━┻●━╋━━┻━━┫
ktaranov/sqlserver-kit 6.43 6.1 / 6.6 / 7.3 0.28 ┣━━┻━●╋━━┻━━┫
liriliri/licia 4.46 4.1 / 4.3 / 4.7 0.17 ┣━━┻━━╋━━●━━┫
MartinThoma/LaTeX-examples 6.89 6.7 / 7.1 / 8.5 0.38 ┣━━┻●━╋━━┻━━┫
mdx-js/mdx 2.12 1.9 / 2.0 / 2.2 0.10 ┣━┻━━╋━●┻━┫
microsoft/TypeScript-Website 5.81 5.3 / 5.7 / 6.2 0.23 ┣━━┻━━╋━●┻━━┫
MicrosoftDocs/PowerShell-Docs 22.20 21.5 / 23.3 / 26.1 1.02 ┣━━●┻━━╋━━┻━━━┫
neovim/nvim-lspconfig 4.82 4.3 / 4.5 / 5.1 0.17 ┣━━┻━━╋━━┻━●┫
pagekit/pagekit 3.79 3.4 / 3.7 / 4.0 0.13 ┣━━┻━━╋━━●━━┫
php/php-src 25.90 24.7 / 26.4 / 30.2 1.29 ┣━━━┻━●╋━━┻━━━┫
plasticrake/tplink-smarthome-api 1.54 1.3 / 1.4 / 1.7 0.10 ┣━┻━━╋━━┻●┫
prettier/prettier 7.59 7.4 / 7.9 / 8.5 0.25 ┣━●┻━━╋━━┻━━┫
pycontribs/jira 1.60 1.5 / 1.6 / 1.9 0.09 ┣━┻━━●━━┻━┫
RustPython/RustPython 6.46 5.5 / 6.2 / 7.4 0.46 ┣━━┻━━╋━●┻━━┫
shoelace-style/shoelace 2.99 2.8 / 3.0 / 3.3 0.10 ┣━┻━━●━━┻━┫
slint-ui/slint 14.91 13.0 / 14.2 / 15.8 0.53 ┣━━┻━━╋━━┻●━┫
SoftwareBrothers/admin-bro 2.65 2.5 / 2.7 / 2.9 0.11 ┣━┻━━●━━┻━┫
sveltejs/svelte 23.10 21.1 / 22.7 / 24.7 0.75 ┣━━━┻━━╋━●┻━━━┫
TheAlgorithms/Python 5.66 5.6 / 5.9 / 6.7 0.24 ┣━━●━━╋━━┻━━┫
twbs/bootstrap 1.84 1.7 / 1.9 / 2.1 0.08 ┣━┻━●╋━━┻━┫
typescript-cheatsheets/react 1.44 1.3 / 1.4 / 1.9 0.11 ┣━┻━━●━━┻━┫
typescript-eslint/typescript-eslint 4.55 4.3 / 4.5 / 4.9 0.14 ┣━━┻━━╋━●┻━━┫
vitest-dev/vitest 9.94 9.4 / 10.1 / 11.6 0.43 ┣━━┻━●╋━━┻━━┫
w3c/aria-practices 3.68 3.4 / 3.6 / 4.0 0.16 ┣━━┻━━╋●━┻━━┫
w3c/specberus 2.05 1.9 / 2.1 / 2.6 0.11 ┣━┻━●╋━━┻━┫
webdeveric/webpack-assets-manifest 1.31 1.1 / 1.3 / 1.6 0.09 ┣━┻━━╋●━┻━┫
webpack/webpack 5.87 5.2 / 5.6 / 6.1 0.23 ┣━━┻━━╋━━●━━┫
wireapp/wire-desktop 1.43 1.3 / 1.4 / 1.7 0.10 ┣━┻━━●━━┻━┫
wireapp/wire-webapp 10.31 9.9 / 10.7 / 12.0 0.52 ┣━━┻●━╋━━┻━━┫

Note:

  • Elapsed time is in seconds.
Files per Second over Time
Repository Files Sec Fps Rel Trend Fps N
AdaDoom3/AdaDoom3 103 3.38 30.45 -2.92% ▇▅█▇▇███▅▅▆▄▅▆▅▅▇▆▅▆ 51
alexiosc/megistos 583 8.78 66.38 -8.23% █▇▆▆▆▅▇▆▅▆▄▂▄▅▅▅▅▆▆▄ 51
apollographql/apollo-server 253 2.64 95.81 2.35% ▇▇▆▅█▇██▃▆▆▆▆▅▆▆▇▆▇█ 51
aspnetboilerplate/aspnetboilerplate 2286 9.60 238.23 4.95% ▇▇▇▇█▇██▇█▇▆▇▇▆▅▇█▇▇ 51
aws-amplify/docs 2874 12.75 225.35 3.62% ▇▇▇▇███▆▇▇▇▇▆▆▇▇▆▇▇▇ 51
Azure/azure-rest-api-specs 2438 11.03 221.07 -6.10% ██▇██▅▇█▆▇▅▃▄▅▇▇▄▅▅▅ 51
bitjson/typescript-starter 20 1.20 16.68 -8.21% █▇▆▆▆▇▇▇▅▄▂▃▂▂▂▃▄▄▄▄ 51
caddyserver/caddy 290 3.59 80.79 4.40% ▇▃▆▆▇▇█▆▄▆▆▆▆▆▆▆▅▅▆▇ 51
canada-ca/open-source-logiciel-libre 7 1.17 5.96 -0.07% ▆▇▇▇██▆█▇▇▄▄▃▄▄▃▆▄▆▆ 51
chef/chef 1196 5.92 201.88 1.93% ▇██▃▆▇██▆▆▆▆▆▇▆▆▇▇▆▇ 51
dart-lang/sdk 10901 59.29 183.87 8.24% ▇▅▆▆██▇█▇▅█▇▇█▇▇▇▇▇█ 51
django/django 2891 15.26 189.46 1.06% ▇█▇▆▆▅█▇▇█▆▇▇▅▆▅▅▃▆▆ 51
eslint/eslint 2062 10.33 199.52 2.55% ▅▆█▇▆▇█▇▆▇▆▆▅▅▅▆▅▇▄▇ 51
exonum/exonum 421 3.59 117.14 2.07% █▆▆▆██▇▇▅▆▄▄▅▅▆▆█▅▆▇ 51
flutter/samples 2441 16.90 144.46 -1.62% █▇▇██▇█▄▇▇▆▆▆▆▇▆▇█▇▆ 51
gitbucket/gitbucket 413 3.63 113.76 -2.90% ▇▇▇▆█▇▇█▇▇▅▅▅▅▅▃▇▇▆▆ 51
googleapis/google-cloud-cpp 21013 136.38 154.07 0.46% ▇▇█▇▇▇▇▅▅▅▅▆▆▄▆▆▆▇▆▆ 51
graphql/express-graphql 26 1.22 21.34 -3.51% ▇▆▅▆▆▇▇█▅▆▂▃▃▃▃▃▆▅▆▅ 51
graphql/graphql-js 368 2.87 128.43 1.91% █▅▇▆██▅█▆▆▄▄▅▅▅▅▇▆▇▇ 51
graphql/graphql-relay-js 28 1.24 22.62 -3.87% ▆▆▇▅▆█▇▇▆▆▄▄▂▃▃▃▄▅▆▅ 51
graphql/graphql-spec 19 1.34 14.21 1.43% ▇▇▇▇▆███▆█▄▄▄▅▄▂▆▅▆▇ 51
iluwatar/java-design-patterns 1992 12.62 157.84 2.69% ▆▇▇▆▆▇██▆▇▆▇▆▆▆▇▆██▇ 51
ktaranov/sqlserver-kit 489 6.43 76.02 1.98% ▇█▇██▇▆█▆█▇▇▆▇▇▆█▆▇▇ 51
liriliri/licia 1437 4.46 322.22 -3.75% ▇▇▇▇██▇█▃▇▄▆▅▅▅▄▆▇▆▅ 51
MartinThoma/LaTeX-examples 1409 6.89 204.57 2.95% █▆▇█▇████▇▃▃▅▄▄▅█▆▇▇ 51
mdx-js/mdx 141 2.12 66.47 -4.59% █▇▆▆▇▆██▅▅▄▃▅▄▅▅▆▇▄▅ 51
microsoft/TypeScript-Website 761 5.81 131.01 -2.32% ▅▆▃▇▇███▇▇▃▄▅▆▆▅▆▇▆▅ 51
MicrosoftDocs/PowerShell-Docs 2639 22.20 118.89 4.86% ▇▆▆▇▅█▇▇▆▇▆▅▆▇▇▇▇▆█▇ 51
neovim/nvim-lspconfig 767 4.82 159.00 -6.00% █▇█▇█▇▇▇▇▇▅▆▇▇▄▆▇▄▆▅ 51
pagekit/pagekit 741 3.79 195.54 -3.47% ▇▅▇▇█▇███▇▅▅▄▄▅▅▇▅▆▅ 51
php/php-src 2265 25.90 87.44 1.53% ███▇█▇█▇▇█▃▆▆▇▆▆▆▇▇▇ 51
plasticrake/tplink-smarthome-api 62 1.54 40.39 -9.30% ▇▆▇▆▇▇▇█▆▇▃▃▅▅▅▃▆▆▄▅ 51
prettier/prettier 2511 7.59 330.68 5.59% ▆▇▇▅▇▆█▅▆▇▆▄▅▄▅▅▅▅▄█ 51
pycontribs/jira 79 1.60 49.40 0.39% █▅▇▆█▇█▇▄▆▄▃▄▄▃▄▆▅▆▇ 51
RustPython/RustPython 719 6.46 111.27 -3.37% ▇▆▇▇▇█▅▆▆▆▄▄▄▅▃▄▇▆▆▇ 51
shoelace-style/shoelace 439 2.99 146.97 -0.11% ▇▇▆▆▇▇▇▇█▆▅▅▃▅▅▅▆▆▇▆ 51
slint-ui/slint 2630 14.91 176.35 -4.70% ▆▅▆▆▇▆▆▅▆█▆▅▃▄▅▅▅▄▆▄ 51
SoftwareBrothers/admin-bro 441 2.65 166.19 -0.00% ██▅▆▇▇▅▇▃▆▆▄▄▅▄▄▆▆▄▆ 51
sveltejs/svelte 8245 23.10 356.96 -1.79% ▅▆▅▆▆▆▆▆█▆▆▅▇▄▆█▆▆▆▅ 51
TheAlgorithms/Python 1400 5.66 247.47 4.17% █▅▇▇█▇█▇▆▅▆▃▅▆▆▄▇▆▆█ 51
twbs/bootstrap 118 1.84 64.26 1.27% ▇▃▇▅▆██▇▅▆▅▄▅▃▅▄▆▆▆▆ 51
typescript-cheatsheets/react 53 1.44 36.85 -1.13% ▇▇▆▇██▇█▅▇▅▅▂▃▅▄▆▇▇▇ 51
typescript-eslint/typescript-eslint 1298 4.55 285.29 -1.90% ▇▇▇▇█▆██▇▇▇▆▄▆▅▇▆▇▇▆ 51
vitest-dev/vitest 2436 9.94 245.01 1.78% █▅▇▇██▅▇▇▇▇▆▇▇▆▇▇█▇▇ 51
w3c/aria-practices 414 3.68 112.56 -2.53% ▆▇▇▆███▇▇▇▆▆▅▆▅▅▇▆▇▅ 51
w3c/specberus 197 2.05 95.99 1.99% ▇▇▇▇█▇▇█▆▇▅▅▆▅▂▅▆▇▇▇ 51
webdeveric/webpack-assets-manifest 55 1.31 41.85 -4.32% ▆▇▇▆██▇▇▆▅▅▂▄▄▄▄▅▆▅▆ 51
webpack/webpack 1139 5.87 194.04 -4.50% █▇▇▇███▇▇█▅▅▆▇▄▅▇▅█▅ 51
wireapp/wire-desktop 44 1.43 30.76 -0.70% ▇▇▇█▇█▆█▇▆▄▄▃▄▅▄▅▆▆▇ 51
wireapp/wire-webapp 1811 10.31 175.62 3.97% ▄▇▇▇█▇███▅▇▅▆▆▆▅▆▇▇▇ 51
Data Throughput
Repository Files Sec Kps Rel Trend Kps N
AdaDoom3/AdaDoom3 103 3.38 647.14 -2.92% ▇▅█▇▇███▅▅▆▄▅▆▅▅▇▆▅▆ 51
alexiosc/megistos 583 8.78 521.58 -8.23% █▇▆▆▆▅▇▆▅▆▄▂▄▅▅▅▅▆▆▄ 51
apollographql/apollo-server 253 2.64 783.94 2.35% ▇▇▆▅█▇██▃▆▆▆▆▅▆▆▇▆▇█ 51
aspnetboilerplate/aspnetboilerplate 2286 9.60 579.63 4.95% ▇▇▇▇█▇██▇█▇▆▇▇▆▅▇█▇▇ 51
aws-amplify/docs 2874 12.75 787.64 3.63% ▇▇▇▇███▆▇▇▇▇▆▆▇▇▆▇▇▇ 51
Azure/azure-rest-api-specs 2438 11.03 584.51 -6.16% ██▇██▅▇█▆▇▅▃▄▅▇▇▄▅▅▅ 51
bitjson/typescript-starter 20 1.20 66.70 -8.21% █▇▆▆▆▇▇▇▅▄▂▃▂▂▂▃▄▄▄▄ 51
caddyserver/caddy 290 3.59 709.31 4.79% ▇▃▆▆▇▇█▆▄▆▆▆▆▆▆▆▆▅▆▇ 51
canada-ca/open-source-logiciel-libre 7 1.17 49.41 -0.07% ▆▇▇▇██▆█▇▇▄▄▃▄▄▃▆▄▆▆ 51
chef/chef 1196 5.92 937.34 1.81% ▇█▇▃▆▇██▆▆▆▆▆▇▆▆▇▇▆▇ 51
dart-lang/sdk 10901 59.29 1246.58 8.24% ▇▅▆▆██▇█▇▅█▇▇█▇▇▇▇▇█ 51
django/django 2891 15.26 1193.59 1.15% ▇█▇▆▆▅█▇▇█▇▇▇▅▆▅▅▃▆▆ 51
eslint/eslint 2062 10.33 1377.42 2.78% ▅▆█▇▆▇█▇▆▇▆▆▅▅▅▆▅▇▄▇ 51
exonum/exonum 421 3.59 1120.44 2.07% █▆▆▆██▇▇▅▆▄▄▅▅▆▆█▅▆▇ 51
flutter/samples 2441 16.90 1269.23 -1.89% █▇▆██▆█▄▇▇▆▆▆▆▇▆▇█▇▆ 51
gitbucket/gitbucket 413 3.63 517.56 -2.88% ▇▇▇▆█▇▇█▇▇▅▅▅▅▅▃▇▇▆▆ 51
googleapis/google-cloud-cpp 21013 136.38 1254.07 0.42% ▇▇█▇▇▇▇▅▅▅▅▆▆▄▅▆▆▇▆▆ 51
graphql/express-graphql 26 1.22 97.68 -3.51% ▇▆▅▆▆▇▇█▅▆▂▃▃▃▃▃▆▅▆▅ 51
graphql/graphql-js 368 2.87 745.46 1.91% █▅▇▆██▅█▆▆▄▄▅▅▅▅▇▆▇▇ 51
graphql/graphql-relay-js 28 1.24 88.88 -3.87% ▆▆▇▅▆█▇▇▆▆▄▄▂▃▃▃▄▅▆▅ 51
graphql/graphql-spec 19 1.34 474.23 1.43% ▇▇▇▇▆███▆█▄▄▄▅▄▂▆▅▆▇ 51
iluwatar/java-design-patterns 1992 12.62 487.87 2.69% ▆▇▇▆▆▇██▆▇▆▇▆▆▆▇▆██▇ 51
ktaranov/sqlserver-kit 489 6.43 1151.20 1.98% ▇█▇██▇▆█▆█▇▇▆▇▇▆█▆▇▇ 51
liriliri/licia 1437 4.46 383.88 -3.75% ▇▇▇▇██▇█▃▇▄▆▅▅▅▄▆▇▆▅ 51
MartinThoma/LaTeX-examples 1409 6.89 422.50 2.95% █▆▇█▇████▇▃▃▅▄▄▅█▆▇▇ 51
mdx-js/mdx 141 2.12 308.79 -4.59% █▇▆▆▇▆██▅▅▄▃▅▄▅▅▆▇▄▅ 51
microsoft/TypeScript-Website 761 5.81 906.24 -2.32% ▅▆▃▇▇███▇▇▃▄▅▆▆▅▆▇▆▅ 51
MicrosoftDocs/PowerShell-Docs 2639 22.20 1240.47 4.88% ▇▆▆▇▅█▇▇▆▇▆▅▆▇▇▇▇▆█▇ 51
neovim/nvim-lspconfig 767 4.82 296.24 -6.08% █▇█▇█▇▇▇▇▇▅▆▇▇▄▆▇▄▆▅ 51
pagekit/pagekit 741 3.79 407.71 -3.47% ▇▅▇▇█▇███▇▅▅▄▄▅▅▇▅▆▅ 51
php/php-src 2265 25.90 1531.33 1.52% ███▇█▇█▇▇█▃▆▆▇▆▆▆▇▇▇ 51
plasticrake/tplink-smarthome-api 62 1.54 218.21 -9.30% ▇▆▇▆▇▇▇█▆▇▃▃▅▅▅▃▆▆▄▅ 51
prettier/prettier 2511 7.59 471.99 5.57% ▆▇▇▅▇▆█▅▆▇▆▄▅▄▅▅▅▅▄▇ 51
pycontribs/jira 79 1.60 350.21 0.39% █▅▇▆█▇█▇▄▆▄▃▄▄▃▄▆▅▆▇ 51
RustPython/RustPython 719 6.46 1297.45 1.60% ▇▆▇▇▇█▅▆▆▇▄▅▄▆▃▄▇▇▇▇ 51
shoelace-style/shoelace 439 2.99 710.06 -0.11% ▇▇▆▆▇▇▇▇█▆▅▅▃▅▅▅▆▆▇▆ 51
slint-ui/slint 2630 14.91 1088.90 -4.84% ▆▅▆▆▇▆▆▅▆█▆▅▃▄▅▅▅▄▆▄ 51
SoftwareBrothers/admin-bro 441 2.65 366.29 -0.00% ██▅▆▇▇▅▇▃▆▆▄▄▅▄▄▆▆▄▆ 51
sveltejs/svelte 8245 23.10 239.54 -1.83% ▅▆▅▆▆▆▆▆█▆▆▅▇▄▆█▆▆▆▅ 51
TheAlgorithms/Python 1400 5.66 630.15 4.22% █▅▇▇█▇█▇▆▅▆▃▅▆▆▄█▆▇█ 51
twbs/bootstrap 118 1.84 527.71 1.27% ▇▃▇▅▆██▇▅▆▅▄▅▃▅▄▆▆▆▆ 51
typescript-cheatsheets/react 53 1.44 272.56 -1.13% ▇▇▆▇██▇█▅▇▅▅▂▃▅▄▆▇▇▇ 51
typescript-eslint/typescript-eslint 1298 4.55 1476.54 -1.84% ▇▇▇▇█▆██▇▇▇▅▄▆▅▇▆▇▇▆ 51
vitest-dev/vitest 2436 9.94 532.57 1.61% █▅▇▇██▅▇▇▆▇▆▇▇▆▇▇█▇▇ 51
w3c/aria-practices 414 3.68 1049.45 -2.53% ▆▇▇▆███▇▇▇▆▆▅▆▅▅▇▆▇▅ 51
w3c/specberus 197 2.05 303.55 1.99% ▇▇▇▇█▇▇█▆▇▅▅▆▅▂▅▆▇▇▇ 51
webdeveric/webpack-assets-manifest 55 1.31 95.86 -4.32% ▆▇▇▆██▇▇▆▅▅▂▄▄▄▄▅▆▅▆ 51
webpack/webpack 1139 5.87 896.42 -4.36% █▇▇▇███▇▇█▅▅▆▇▄▅▇▅█▅ 51
wireapp/wire-desktop 44 1.43 137.02 -0.53% ▇▇▇█▇█▆█▇▆▄▄▃▄▅▄▅▆▆▇ 51
wireapp/wire-webapp 1811 10.31 660.57 4.62% ▄▇▇▇█▇███▅▇▅▆▇▆▆▆▇▇▇ 51

@Jason3S Jason3S marked this pull request as ready for review January 7, 2026 10:56
@Jason3S Jason3S requested a review from Copilot January 7, 2026 10:57
@Jason3S Jason3S merged commit 468b8ab into main Jan 7, 2026
81 checks passed
@Jason3S Jason3S deleted the dev-btrie branch January 7, 2026 10:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for loading btrie (binary trie) dictionaries in cspell-lib, enabling more efficient dictionary storage and loading. The changes also include enhancements to the table utility for better formatting and a refactoring of performance measurement tracking to use a hierarchical structure.

  • Added btrie path resolution and loading support in DictionarySettings and DictionaryLoader
  • Enhanced the table utility with column alignment, indentation, and title support
  • Refactored performance measurements to use a hierarchical tree structure instead of flat key-based tracking
  • Improved performance reporting with color coding and additional metrics

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/cspell-lib/src/lib/SpellingDictionary/DictionaryController/DictionaryLoader.ts Updated to load btrie file when available, falling back to path
packages/cspell-lib/src/lib/Settings/DictionarySettings.ts Added btrie path resolution logic to handle btrie file references alongside regular dictionary paths
packages/cspell/src/util/table.ts Enhanced with column alignment (left/right), indentation, and title support for better table formatting
packages/cspell/src/util/table.test.ts Updated test to verify right-aligned columns work correctly
packages/cspell/src/util/perfMeasurements.ts Refactored from flat key-based tracking to hierarchical tree structure with parent-child relationships
packages/cspell/src/cli-reporter.ts Enhanced performance reporting with table formatting, color coding by depth, and additional metrics (average time)
packages/cspell/src/app.test.ts Added regex pattern to normalize time values in snapshot tests
packages/cspell/src/snapshots/app.test.ts.snap Updated snapshot to reflect new table-based performance stats format
packages/cspell-lib/src/lib/textValidation/docValidator.test.ts Added test case for btrie dictionary fixture
packages/cspell-lib/src/lib/test/english.spec.ts Modernized timing code to use performance.now() instead of process.hrtime()
packages/cspell-lib/fixtures/dictionaries/btrie/* Added fixture files demonstrating btrie dictionary configuration and usage

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants