1
0
mirror of https://github.com/salexdv/bsl_console.git synced 2025-07-15 01:24:31 +02:00

Доработка подсказки параметров методов определяемых по ссылке

This commit is contained in:
salexdv
2022-05-31 07:48:14 +03:00
parent 1553a16631
commit f0e73d5e89

View File

@ -5487,42 +5487,34 @@ class bslHelper {
* Fills signatures provided for reference-type object * Fills signatures provided for reference-type object
* if a reference was found in the previous position * if a reference was found in the previous position
* *
* @param {SignatureHelpContext} context signature help context
*
* @return {SignatureHelp} helper with signatures * @return {SignatureHelp} helper with signatures
*/ */
getRefSigHelp() { getRefSigHelp(context) {
let helper = null; let helper = null;
let match = Finder.findPreviousMatch(this.model, '\\(', this.position); const position = context.methodPosition;
let lineContextData = contextData.get(position.lineNumber)
let method = context.methodName.split('.').pop(0);
let wordContext = null;
if (lineContextData) {
wordContext = lineContextData.get(method.toLowerCase());
if (match) { if (wordContext && wordContext.sig) {
const position = new monaco.Position(match.range.startLineNumber, match.range.startColumn); helper = {
activeParameter: context.activeParameter,
if (position.lineNumber = this.lineNumber) { activeSignature: 0,
signatures: wordContext.sig,
let lineContextData = contextData.get(position.lineNumber) }
let wordContext = null;
if (lineContextData) {
let wordUntil = this.model.getWordUntilPosition(position);
wordContext = lineContextData.get(wordUntil.word.toLowerCase());
if (wordContext && wordContext.sig) {
helper = {
activeParameter: this.getSignatureActiveParameter(),
activeSignature: 0,
signatures: wordContext.sig,
}
}
}
} }
}
}
return helper; return helper;
} }
@ -5614,7 +5606,7 @@ class bslHelper {
if (!editor.disableNativeSignatures) { if (!editor.disableNativeSignatures) {
if (!helper) if (!helper)
helper = this.getRefSigHelp(); helper = this.getRefSigHelp(context);
if (!helper) if (!helper)
helper = this.getMetadataSigHelp(bslMetadata); helper = this.getMetadataSigHelp(bslMetadata);