Implemented fix for first parameter being a substring of the second p… (#106432)

* Implemented fix for first parameter being a substring of the second parameter

* Addressed PR concern

* Included edge cases

* Changed to regex expression

* Accounted for edge case

* Added regex escaping
This commit is contained in:
tomerstav 2020-09-18 15:35:21 -07:00 committed by GitHub
parent 6781d16f05
commit 536ea46187
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -22,7 +22,7 @@ import { IOpenerService } from 'vs/platform/opener/common/opener';
import { editorHoverBackground, editorHoverBorder, textCodeBlockBackground, textLinkForeground, editorHoverForeground } from 'vs/platform/theme/common/colorRegistry';
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import { ParameterHintsModel, TriggerContext } from 'vs/editor/contrib/parameterHints/parameterHintsModel';
import { pad } from 'vs/base/common/strings';
import { pad, escapeRegExpCharacters } from 'vs/base/common/strings';
import { registerIcon, Codicon } from 'vs/base/common/codicons';
import { assertIsDefined } from 'vs/base/common/types';
import { ColorScheme } from 'vs/platform/theme/common/theme';
@ -312,9 +312,11 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget {
} else if (Array.isArray(param.label)) {
return param.label;
} else {
const idx = signature.label.lastIndexOf(param.label);
const regex = new RegExp(`\\b${escapeRegExpCharacters(param.label)}\\b`, 'g');
regex.test(signature.label);
const idx = regex.lastIndex - param.label.length;
return idx >= 0
? [idx, idx + param.label.length]
? [idx, regex.lastIndex]
: [0, 0];
}
}