/* TextEditor::openCalltip * Opens a calltip for the function name before [pos]. Returns false * if the word before [pos] was not a function name, true otherwise *******************************************************************/ bool TextEditor::openCalltip(int pos, int arg) { // Don't bother if no language if (!language) return false; // Get start of word before bracket int start = WordStartPosition(pos - 1, false); // Get word before bracket string word = GetTextRange(WordStartPosition(start, true), WordEndPosition(start, true)); // Get matching language function (if any) TLFunction* func = language->getFunction(word); // Show calltip if it's a function if (func && func->nArgSets() > 0) { CallTipShow(pos, func->generateCallTipString()); ct_function = func; ct_argset = 0; ct_start = pos; // Highlight arg point2_t arg_ext = ct_function->getArgTextExtent(arg); CallTipSetHighlight(arg_ext.x, arg_ext.y); return true; } else { ct_function = NULL; return false; } }
/* TextEditor::openCalltip * Opens a calltip for the function name before [pos]. Returns false * if the word before [pos] was not a function name, true otherwise *******************************************************************/ bool TextEditor::openCalltip(int pos, int arg, bool dwell) { // Don't bother if no language if (!language) return false; // Get start of word before bracket int start = WordStartPosition(pos - 1, false); int end = WordEndPosition(pos - 1, true); // Get word before bracket string word = GetTextRange(WordStartPosition(start, true), WordEndPosition(start, true)); // Get matching language function (if any) TLFunction* func = language->getFunction(word); // Show calltip if it's a function if (func && func->nArgSets() > 0) { call_tip->enableArgSwitch(!dwell && func->nArgSets() > 1); call_tip->openFunction(func, arg); showCalltip(dwell ? pos : end + 1); ct_function = func; ct_start = pos; ct_dwell = dwell; // Highlight arg call_tip->setCurrentArg(arg); return true; } else { ct_function = nullptr; return false; } }