Skip to content

Commit 1c790ec

Browse files
authored
Adds code navigation and highlighting support for Tcl (#362)
* use new tcl codemirror package * update to new tcl version: * add changelog entry
1 parent 4bb93c9 commit 1c790ec

File tree

5 files changed

+107
-4
lines changed

5 files changed

+107
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased]
99

1010
### Added
11+
- Added code nav and syntax highlighting for TCL. [#362](https://github.com/sourcebot-dev/sourcebot/pull/362)
1112
- Added analytics dashboard. [#358](https://github.com/sourcebot-dev/sourcebot/pull/358)
1213

1314
### Fixed

packages/web/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"@replit/codemirror-vim": "^6.2.1",
7272
"@sentry/nextjs": "^9",
7373
"@shopify/lang-jsonc": "^1.0.0",
74+
"@sourcebot/codemirror-lang-tcl": "^1.0.12",
7475
"@sourcebot/crypto": "workspace:*",
7576
"@sourcebot/db": "workspace:*",
7677
"@sourcebot/error": "workspace:*",

packages/web/src/ee/features/codeNav/components/symbolHoverPopup/symbolHoverTargetsExtension.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,12 @@ const NODE_TYPES = [
4444
"FieldName",
4545
// PHP
4646
"ClassMemberName",
47-
"Name"
47+
"Name",
48+
// Tcl
49+
"ProcName",
50+
"ProcInvocation",
51+
"PackageName",
52+
"Variable"
4853
]
4954

5055
export const symbolHoverTargetsExtension = StateField.define<DecorationSet>({

packages/web/src/lib/codemirrorLanguage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import { sparql } from "codemirror-lang-sparql"; // 3rd party
3636
import { spreadsheet } from "codemirror-lang-spreadsheet"; // 3rd party
3737
import { sql } from "@codemirror/lang-sql";
3838
import { svelte } from "@replit/codemirror-lang-svelte"; // 3rd party
39+
import { tcl } from "@sourcebot/codemirror-lang-tcl";
3940
import { twig } from "@ssddanbrown/codemirror-lang-twig"; // 3rd party
4041
import { vue } from "@codemirror/lang-vue";
4142
import { wast } from "@codemirror/lang-wast";
@@ -93,7 +94,6 @@ import { shader } from "@codemirror/legacy-modes/mode/clike";
9394
import { shell } from "@codemirror/legacy-modes/mode/shell";
9495
import { squirrel } from "@codemirror/legacy-modes/mode/clike";
9596
import { swift } from "@codemirror/legacy-modes/mode/swift";
96-
import { tcl } from "@codemirror/legacy-modes/mode/tcl";
9797
import { textile } from "@codemirror/legacy-modes/mode/textile";
9898
import { stex } from "@codemirror/legacy-modes/mode/stex";
9999
import { toml } from "@codemirror/legacy-modes/mode/toml";
@@ -159,6 +159,7 @@ export const codemirrorLanguageMap = {
159159
"spreadsheet": spreadsheet(),
160160
"sql": sql(),
161161
"svelte": svelte(),
162+
"tcl": tcl(),
162163
"tsx": javascript({ jsx: true, typescript: true }),
163164
"twig": twig(),
164165
"typescript": javascript({ jsx: false, typescript: true }),
@@ -214,7 +215,6 @@ export const codemirrorLanguageMap = {
214215
"shell": StreamLanguage.define(shell),
215216
"squirrel": StreamLanguage.define(squirrel),
216217
"swift": StreamLanguage.define(swift),
217-
"tcl": StreamLanguage.define(tcl),
218218
"textile": StreamLanguage.define(textile),
219219
"stex": StreamLanguage.define(stex),
220220
"toml": StreamLanguage.define(toml),

yarn.lock

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,20 @@ __metadata:
347347
languageName: node
348348
linkType: hard
349349

350+
"@codemirror/highlight@npm:^0.19.0":
351+
version: 0.19.8
352+
resolution: "@codemirror/highlight@npm:0.19.8"
353+
dependencies:
354+
"@codemirror/language": "npm:^0.19.0"
355+
"@codemirror/rangeset": "npm:^0.19.0"
356+
"@codemirror/state": "npm:^0.19.3"
357+
"@codemirror/view": "npm:^0.19.39"
358+
"@lezer/common": "npm:^0.15.0"
359+
style-mod: "npm:^4.0.0"
360+
checksum: 10c0/64ee07946e102962339de7d2b1e10f0eb2588549650f681c63ec58b6c1223ed9ed800097d87d5c52150024b7070ba3a0b2b2e27c8913545f85e17c72c2cfff60
361+
languageName: node
362+
linkType: hard
363+
350364
"@codemirror/lang-angular@npm:^0.1.0":
351365
version: 0.1.4
352366
resolution: "@codemirror/lang-angular@npm:0.1.4"
@@ -668,6 +682,19 @@ __metadata:
668682
languageName: node
669683
linkType: hard
670684

685+
"@codemirror/language@npm:^0.19.0":
686+
version: 0.19.10
687+
resolution: "@codemirror/language@npm:0.19.10"
688+
dependencies:
689+
"@codemirror/state": "npm:^0.19.0"
690+
"@codemirror/text": "npm:^0.19.0"
691+
"@codemirror/view": "npm:^0.19.0"
692+
"@lezer/common": "npm:^0.15.5"
693+
"@lezer/lr": "npm:^0.15.0"
694+
checksum: 10c0/aaa1a413fde7913cbe07d5ff66e634a9261214afc76e776d4eb68c7c7f6179988c27d842091bbab28059ff64027f23b492a9d976bf0e5396b1dbecdd9bd9c444
695+
languageName: node
696+
linkType: hard
697+
671698
"@codemirror/legacy-modes@npm:^6.4.0":
672699
version: 6.5.1
673700
resolution: "@codemirror/legacy-modes@npm:6.5.1"
@@ -697,6 +724,15 @@ __metadata:
697724
languageName: node
698725
linkType: hard
699726

727+
"@codemirror/rangeset@npm:^0.19.0, @codemirror/rangeset@npm:^0.19.5":
728+
version: 0.19.9
729+
resolution: "@codemirror/rangeset@npm:0.19.9"
730+
dependencies:
731+
"@codemirror/state": "npm:^0.19.0"
732+
checksum: 10c0/40fc64994f8020f29c224f4f5a5f83b4cb46252f14ec3837258e3fa27228df59fb891d67f0b42bf873b07543f3965b2e6d5a5ea567481792c904b0031b041236
733+
languageName: node
734+
linkType: hard
735+
700736
"@codemirror/search@npm:^6.0.0, @codemirror/search@npm:^6.5.6":
701737
version: 6.5.10
702738
resolution: "@codemirror/search@npm:6.5.10"
@@ -708,6 +744,15 @@ __metadata:
708744
languageName: node
709745
linkType: hard
710746

747+
"@codemirror/state@npm:^0.19.0, @codemirror/state@npm:^0.19.3":
748+
version: 0.19.9
749+
resolution: "@codemirror/state@npm:0.19.9"
750+
dependencies:
751+
"@codemirror/text": "npm:^0.19.0"
752+
checksum: 10c0/b2107e86ab31f4ccd81f2c7848761f6cfaefdc5a215bace692917a9352c44662645535593119c75af2c850de6359771c03ebb8b6366986431a11a1195358d7af
753+
languageName: node
754+
linkType: hard
755+
711756
"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.4.1, @codemirror/state@npm:^6.5.0":
712757
version: 6.5.2
713758
resolution: "@codemirror/state@npm:6.5.2"
@@ -717,6 +762,13 @@ __metadata:
717762
languageName: node
718763
linkType: hard
719764

765+
"@codemirror/text@npm:^0.19.0":
766+
version: 0.19.6
767+
resolution: "@codemirror/text@npm:0.19.6"
768+
checksum: 10c0/2c7cf96116e704e0126e4105f5a91b5feda1c9b403de47bb40ef9e650af2e38a1ba5d8f8e40725e8756260589e41337d1f815f634307adf5cd6df4bf95b61718
769+
languageName: node
770+
linkType: hard
771+
720772
"@codemirror/theme-one-dark@npm:^6.0.0":
721773
version: 6.1.2
722774
resolution: "@codemirror/theme-one-dark@npm:6.1.2"
@@ -729,6 +781,19 @@ __metadata:
729781
languageName: node
730782
linkType: hard
731783

784+
"@codemirror/view@npm:^0.19.0, @codemirror/view@npm:^0.19.39":
785+
version: 0.19.48
786+
resolution: "@codemirror/view@npm:0.19.48"
787+
dependencies:
788+
"@codemirror/rangeset": "npm:^0.19.5"
789+
"@codemirror/state": "npm:^0.19.3"
790+
"@codemirror/text": "npm:^0.19.0"
791+
style-mod: "npm:^4.0.0"
792+
w3c-keyname: "npm:^2.2.4"
793+
checksum: 10c0/360893303540878a616b8db85990d58790ba4f7cceda1dd55383a0d49aa733a5f0a1831f31ec12e8419ebf307cc7b47f9b6fa9ddccaed970bcc37174f72f61c0
794+
languageName: node
795+
linkType: hard
796+
732797
"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.33.0, @codemirror/view@npm:^6.35.0":
733798
version: 6.36.4
734799
resolution: "@codemirror/view@npm:6.36.4"
@@ -1812,6 +1877,13 @@ __metadata:
18121877
languageName: node
18131878
linkType: hard
18141879

1880+
"@lezer/common@npm:^0.15.0, @lezer/common@npm:^0.15.5":
1881+
version: 0.15.12
1882+
resolution: "@lezer/common@npm:0.15.12"
1883+
checksum: 10c0/ed9cbeeee81e4da94a4fba735caddb6aa5d1908a4b2a95737b35492a2b0ec220be792ef7b2d302914904b3d9fa7307f43e8b627973e10b04cd1c1a88e5647622
1884+
languageName: node
1885+
linkType: hard
1886+
18151887
"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.0.3, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0, @lezer/common@npm:^1.2.1":
18161888
version: 1.2.3
18171889
resolution: "@lezer/common@npm:1.2.3"
@@ -1905,6 +1977,15 @@ __metadata:
19051977
languageName: node
19061978
linkType: hard
19071979

1980+
"@lezer/lr@npm:^0.15.0":
1981+
version: 0.15.8
1982+
resolution: "@lezer/lr@npm:0.15.8"
1983+
dependencies:
1984+
"@lezer/common": "npm:^0.15.0"
1985+
checksum: 10c0/5cd5123aca5cb2f268d265b6c21922ba3426ba60b9bbc1df85f4bfeed48097a444c656e642557fa93de8a8eb00d3254f502ce2796ae9edc1d186f14fa540a863
1986+
languageName: node
1987+
linkType: hard
1988+
19081989
"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.1.0, @lezer/lr@npm:^1.3.0, @lezer/lr@npm:^1.3.1, @lezer/lr@npm:^1.3.10, @lezer/lr@npm:^1.3.3, @lezer/lr@npm:^1.3.7, @lezer/lr@npm:^1.4.0, @lezer/lr@npm:^1.4.2, @lezer/lr@npm:^1.x":
19091990
version: 1.4.2
19101991
resolution: "@lezer/lr@npm:1.4.2"
@@ -5806,6 +5887,20 @@ __metadata:
58065887
languageName: unknown
58075888
linkType: soft
58085889

5890+
"@sourcebot/codemirror-lang-tcl@npm:^1.0.12":
5891+
version: 1.0.12
5892+
resolution: "@sourcebot/codemirror-lang-tcl@npm:1.0.12"
5893+
dependencies:
5894+
"@codemirror/highlight": "npm:^0.19.0"
5895+
"@codemirror/language": "npm:^6.0.0"
5896+
"@lezer/common": "npm:^1.0.0"
5897+
"@lezer/highlight": "npm:^1.0.0"
5898+
"@lezer/lr": "npm:^1.0.0"
5899+
tslib: "npm:^2.8.1"
5900+
checksum: 10c0/3f858a1fb57a2da63d3b197a2d2617075fdf84598b77b0c8b8237835363035088aec4a7784da5909bd2c9c98422dda5577be6366a3e266715fc5436a8078dab3
5901+
languageName: node
5902+
linkType: hard
5903+
58095904
"@sourcebot/crypto@workspace:*, @sourcebot/crypto@workspace:packages/crypto":
58105905
version: 0.0.0-use.local
58115906
resolution: "@sourcebot/crypto@workspace:packages/crypto"
@@ -5974,6 +6069,7 @@ __metadata:
59746069
"@replit/codemirror-vim": "npm:^6.2.1"
59756070
"@sentry/nextjs": "npm:^9"
59766071
"@shopify/lang-jsonc": "npm:^1.0.0"
6072+
"@sourcebot/codemirror-lang-tcl": "npm:^1.0.12"
59776073
"@sourcebot/crypto": "workspace:*"
59786074
"@sourcebot/db": "workspace:*"
59796075
"@sourcebot/error": "workspace:*"
@@ -16082,7 +16178,7 @@ __metadata:
1608216178
languageName: node
1608316179
linkType: hard
1608416180

16085-
"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0":
16181+
"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.8.1":
1608616182
version: 2.8.1
1608716183
resolution: "tslib@npm:2.8.1"
1608816184
checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62

0 commit comments

Comments
 (0)