Skip to content

Commit d74183d

Browse files
committed
Minor regex change to avoid ':' being provided as hint
1 parent 1c7de56 commit d74183d

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

src/typeSearch.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ export class TypeSearch {
161161
*/
162162
public static hintOfSimilarParam(param: string, src: string): string | null {
163163

164-
const m = new RegExp(`^[ \t]*def [^(\\s]+\\([^)]*\\b${param}\\b: *([^),\\s=#]+)`, "m").exec(src);
164+
const m = new RegExp(`^[ \t]*def [^(\\s]+\\([^)]*\\b${param}\\b: *([^),\\s=#:]+)`, "m").exec(src);
165165
if (m) {
166166
let hint = m[1].trim();
167167
return hint ? hint : null;

test/typeSearch/hintOfSimilarParam.test.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ suite('TypeSearch.hintOfSimilarParam', () => {
77
test("finds hint of lone param", () => {
88
const expected = "str";
99
const param = "test";
10-
let src = `def func(${param}: str):\ndef test(self, ${param}:`;
10+
let src = `def func(${param}: str):\ndef test(${param}:`;
1111
let actual = TypeSearch.hintOfSimilarParam(param, src);
1212
assert.equal(actual, expected);
1313
});
@@ -16,7 +16,7 @@ suite('TypeSearch.hintOfSimilarParam', () => {
1616
const expected = "str";
1717
const param = "test";
1818

19-
let src = `def func(self, p1: int,${param}: str):\ndef test(self, ${param}:`;
19+
let src = `def func(self, p1: int,${param}: str):\ndef test(${param}:`;
2020
let actual = TypeSearch.hintOfSimilarParam(param, src);
2121
assert.equal(actual, expected);
2222
});
@@ -25,7 +25,7 @@ suite('TypeSearch.hintOfSimilarParam', () => {
2525
const expected = "str";
2626
const param = "test";
2727

28-
let src = `def func(self, ${param}: str,new: int):\ndef test(self, ${param}:`;
28+
let src = `def func(self, ${param}: str,new: int):\ndef test(${param}:`;
2929
let actual = TypeSearch.hintOfSimilarParam(param, src);
3030
assert.equal(actual, expected);
3131
});
@@ -34,7 +34,7 @@ suite('TypeSearch.hintOfSimilarParam', () => {
3434
const expected = "str";
3535
const param = "test";
3636

37-
let src = `def func(\n\t${param}: str,new: int):\ndef test(self, ${param}:`;
37+
let src = `def func(\n\t${param}: str,new: int):\ndef test(${param}:`;
3838
let actual = TypeSearch.hintOfSimilarParam(param, src);
3939
assert.equal(actual, expected);
4040
});
@@ -43,23 +43,23 @@ suite('TypeSearch.hintOfSimilarParam', () => {
4343
const expected = "str";
4444
const param = "test";
4545

46-
let src = `def func(${param}: str='exclude',new: int):\ndef test(self, text${param}:`;
46+
let src = `def func(${param}: str='exclude',new: int):\ndef test(${param}:`;
4747
let actual = TypeSearch.hintOfSimilarParam(param, src);
4848
assert.equal(actual, expected);
4949
});
5050

5151
test("finds non-ascii hint", () => {
5252
const expected = "蟒蛇";
5353
const param = "test";
54-
let src = `def func(${param}: 蟒蛇):\ndef test(self, ${param}:`;
54+
let src = `def func(${param}: 蟒蛇):\ndef test(${param}:`;
5555
let actual = TypeSearch.hintOfSimilarParam(param, src);
5656
assert.equal(actual, expected);
5757
});
5858

5959
test("matches non-ascii function names", () => {
6060
const expected = "str";
6161
const param = "test";
62-
let src = `def 蟒蛇(${param}: str):\ndef test(self, ${param}:`;
62+
let src = `def 蟒蛇(${param}: str):\ndef test(${param}:`;
6363
let actual = TypeSearch.hintOfSimilarParam(param, src);
6464
assert.equal(actual, expected);
6565
});
@@ -68,15 +68,25 @@ suite('TypeSearch.hintOfSimilarParam', () => {
6868
const expected = null;
6969
const param = "test";
7070

71-
let src = `def func(text${param}: str,new: int):\ndef test(self, text${param}:`;
71+
let src = `def func(text${param}: str,new: int):\ndef test(${param}:`;
72+
let actual = TypeSearch.hintOfSimilarParam(param, src);
73+
assert.equal(actual, expected);
74+
});
75+
76+
test("doesn't provide items for ':' followed by ':'", () => {
77+
78+
const expected = null;
79+
const param = "test";
80+
81+
let src = `def func(${param}::):\ndef test(${param}:`;
7282
let actual = TypeSearch.hintOfSimilarParam(param, src);
7383
assert.equal(actual, expected);
7484
});
7585

7686
test("doesn't match comments", () => {
7787
const expected = null;
7888
const param = "test";
79-
let src = `# def func(${param}: str):\ndef test(self, ${param}:`;
89+
let src = `# def func(${param}: str):\ndef test(${param}:`;
8090
let actual = TypeSearch.hintOfSimilarParam(param, src);
8191
assert.equal(actual, expected, messageFor(src, expected, actual));
8292

0 commit comments

Comments
 (0)