summaryrefslogtreecommitdiffhomepage
path: root/docker/cs/luau-declarations.patch
blob: 794ecac4c2fba8697c6dbd24c8efe0937f88fffe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 ")},