1
0
mirror of https://github.com/salexdv/bsl_console.git synced 2025-09-16 09:06:17 +02:00

Мгновенный вывод произвольной всплывающей подсказки

This commit is contained in:
salexdv
2024-03-06 19:11:56 +03:00
parent 6978af064a
commit 78155bf283
4 changed files with 55 additions and 0 deletions

View File

@@ -172,6 +172,7 @@ npm run build -- --customOptions "automaticLayout: true, someOption: false"
| `updateCustomFunctions` | Обновляет пользовательские функции |
| [`parseCommonModule`](docs/parse_module.md) | Загружает структуру общего модуля |
| [`parseMetadataModule`](docs/parse_metadata_module.md) | Загружает структуру модуля менеджера или модуля объекта |
| [`showImmediateHover`](docs/immediate_hover.md) | Показывает произвольную всплывающую подсказку |
| [`setCustomHovers`](docs/set_custom_hovers.md) | Обновляет пользовательские подсказки, показываемые при наведении |
| [`setCustomSignatures`](docs/set_custom_signatures.md) | Обновляет пользовательские подсказки по вызову процедуры/метода |
| [`setCustomCodeLenses`](docs/custom_code_lenses.md) | Загружает подсказки для Code Lens |

16
docs/immediate_hover.md Normal file
View File

@@ -0,0 +1,16 @@
# Функция *showImmediateHover*
## Назначение функции
Функция позволяет показать произвольную всплывающую подсказку в текущей позиции курсора мыши
## Параметры функции
* **text** - *string*, текст произвольной подсказки
* **title** - *string*, заголовок подсказки
## Пример вызова
```javascript
showImmediateHover(`СправочникСсылка.Номенклатура`, `**Ссылка**`);
```

View File

@@ -7238,6 +7238,30 @@ class bslHelper {
}
/**
* Provider for immediate hover popoup
*
* @returns {object} - hover object or null
*/
getImmediateHover() {
if (window.immediateHover.length) {
let hover = {
range: new monaco.Range(this.lineNumber, this.column, this.lineNumber, this.model.getLineMaxColumn(this.lineNumber)),
contents: window.immediateHover
};
window.immediateHover = [];
return hover;
}
return null;
}
/**
* Provider for hover popoup
*
@@ -7247,6 +7271,9 @@ class bslHelper {
let hover = this.getCustomHover();
if (!hover)
hover = this.getImmediateHover();
if (!hover && !window.editor.disableNativeHovers) {
for (const [key, value] of Object.entries(window.bslGlobals)) {

View File

@@ -36,6 +36,7 @@ window.version1C = '';
window.userName = '';
window.contextActions = [];
window.customHovers = {};
window.immediateHover = [];
window.customSignatures = {};
window.customCodeLenses = [];
window.originalText = '';
@@ -809,6 +810,16 @@ window.triggerHovers = function() {
}
window.showImmediateHover = function(text, title) {
window.immediateHover = [
{ value: title },
{ value: text }
]
window.triggerHovers();
}
window.triggerSigHelp = function() {
window.editor.trigger('', 'editor.action.triggerParameterHints', {});