summaryrefslogtreecommitdiffhomepage
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/cs/luau-declarations.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/docker/cs/luau-declarations.patch b/docker/cs/luau-declarations.patch
new file mode 100644
index 0000000..794ecac
--- /dev/null
+++ b/docker/cs/luau-declarations.patch
@@ -0,0 +1,32 @@
+Add a Luau declaration-pattern table to the cs structural ranker.
+
+Upstream cs (v3.1.0) ships a "Lua" entry in languageDeclarationPatterns but no
+"Luau" entry, even though its bundled scc database recognises ".luau" files as a
+distinct "Luau" language. Without a matching declaration table, every match in a
+.luau file is classified as a plain "usage": --only-declarations returns nothing
+and the structural ranker gives definitions no boost. This is the dominant file
+type in Roblox codebases, so we add a Luau entry that mirrors Lua's function
+prefixes and additionally covers Luau's `type` / `export type` declarations.
+
+This is a purely additive change (one new map entry); it does not alter any
+existing language's behaviour and passes cs's own pkg/ranker test suite. Applied
+during the Docker build via `git apply` against the pinned v3.1.0 checkout
+(see Dockerfile / Dockerfile.dev). Candidate for upstreaming to boyter/cs.
+
+diff --git a/pkg/ranker/declarations.go b/pkg/ranker/declarations.go
+index 42cd934..36f9f68 100644
+--- a/pkg/ranker/declarations.go
++++ b/pkg/ranker/declarations.go
+@@ -187,6 +187,12 @@ var languageDeclarationPatterns = map[string][]DeclarationPattern{
+ {Prefix: []byte("function ")},
+ {Prefix: []byte("local function ")},
+ },
++ "Luau": {
++ {Prefix: []byte("function ")},
++ {Prefix: []byte("local function ")},
++ {Prefix: []byte("type ")},
++ {Prefix: []byte("export type ")},
++ },
+ "Scala": {
+ {Prefix: []byte("def ")},
+ {Prefix: []byte("val ")},