mirror of
https://github.com/salexdv/bsl_console.git
synced 2024-11-24 08:33:29 +02:00
Генерация события перед показом всплывающей подсказки для слова closes #77
This commit is contained in:
parent
4581dd3459
commit
4030393d98
@ -70,6 +70,7 @@
|
||||
| [`enableSuggestActivationEvent`](docs/activation_event.md) | Включает/выключает генерацию события, возникающего активации пункта в списке подсказок|
|
||||
| [`enableBeforeShowSuggestEvent`](docs/before_suggest_event.md) | Включает/выключает генерацию события, возникающего перед появлением списка подсказок|
|
||||
| [`enableSelectSuggestEvent`](docs/select_suggest_event.md) | Включает/выключает генерацию события, возникающего при выборе пункта из списка подсказок|
|
||||
| [`enableBeforeHoverEvent`](docs/before_hover_event.md) | Включает/выключает генерацию события, возникающего перед появлением всплывающей подсказки для слова|
|
||||
| [`switchQueryMode`](docs/switch_query.md) | Переключение между режимом запроса и режимом редактирования кода |
|
||||
| [`compare`](docs/compare.md) | Включает/выключает режим сравнения текстов |
|
||||
| `nextDiff` | Переход с следующему изменению в режиме сравнения |
|
||||
@ -114,6 +115,7 @@
|
||||
| `EVENT_ON_ACTIVATE_SUGGEST_ROW`| При активации пункта в текущем списке подсказок [(подробнее)](docs/activation_event.md) |
|
||||
| `EVENT_BEFORE_SHOW_SUGGEST` | Перед появлением списка подсказок [(подробнее)](docs/before_suggest_event.md) |
|
||||
| `EVENT_ON_SELECT_SUGGEST_ROW` | При выборе пункта из списка подсказок [(подробнее)](docs/select_suggest_event.md) |
|
||||
| `EVENT_BEFORE_HOVER` | Перед появлением всплывающей подсказки для слова [(подробнее)](docs/before_hover_event.md.md) |
|
||||
|
||||
*Перед началом работы с редактором из 1С Предпрития желательно вызвать функцию инициализации и передать в нее текущую версию платформы.*
|
||||
Пример:
|
||||
|
29
docs/before_hover_event.md
Normal file
29
docs/before_hover_event.md
Normal file
@ -0,0 +1,29 @@
|
||||
# Функция *enableBeforeHoverEvent*
|
||||
## Назначение функции
|
||||
Функция включает/выключает генерацию события *EVENT_BEFORE_HOVER*, которое возникает перед появлением всплывающей подсказки для слова при наведении мыши
|
||||
|
||||
## Параметры функции
|
||||
* **enabled** - *boolean*, активность события
|
||||
|
||||
## Пример вызова
|
||||
```javascript
|
||||
// Включение генерации события
|
||||
enableBeforeHoverEvent(true);
|
||||
|
||||
// Отключение генерации события
|
||||
enableBeforeHoverEvent(false);
|
||||
```
|
||||
|
||||
## Пример параметров генерируемого события
|
||||
```json
|
||||
{
|
||||
"word": {
|
||||
"word": "Документы",
|
||||
"startColumn": 8,
|
||||
"endColumn": 17
|
||||
},
|
||||
"token": "identifierbsl",
|
||||
"line": 4,
|
||||
"column": 12
|
||||
}
|
||||
```
|
@ -4201,6 +4201,21 @@ class bslHelper {
|
||||
*/
|
||||
getHover() {
|
||||
|
||||
for (const [key, value] of Object.entries(customHovers)) {
|
||||
|
||||
if (key.toLowerCase() == this.word && value) {
|
||||
|
||||
return {
|
||||
range: new monaco.Range(this.lineNumber, this.column, this.lineNumber, this.model.getLineMaxColumn(this.lineNumber)),
|
||||
contents: [
|
||||
{ value: value }
|
||||
]
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (const [key, value] of Object.entries(bslGlobals)) {
|
||||
|
||||
for (const [ikey, ivalue] of Object.entries(value)) {
|
||||
@ -4231,22 +4246,7 @@ class bslHelper {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (const [key, value] of Object.entries(customHovers)) {
|
||||
|
||||
if (key.toLowerCase() == this.word && value) {
|
||||
|
||||
return {
|
||||
range: new monaco.Range(this.lineNumber, this.column, this.lineNumber, this.model.getLineMaxColumn(this.lineNumber)),
|
||||
contents: [
|
||||
{ value: value }
|
||||
]
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
@ -427,8 +427,22 @@ define([], function () {
|
||||
},
|
||||
hoverProvider: {
|
||||
provideHover: function (model, position) {
|
||||
|
||||
if (generateBeforeHoverEvent) {
|
||||
let bsl = new bslHelper(model, position);
|
||||
let token = bsl.getLastToken();
|
||||
let params = {
|
||||
word: model.getWordAtPosition(position),
|
||||
token: token,
|
||||
line: position.lineNumber,
|
||||
column: position.column
|
||||
}
|
||||
sendEvent('EVENT_BEFORE_HOVER', params);
|
||||
}
|
||||
|
||||
let bsl = new bslHelper(model, position);
|
||||
return bsl.getHover();
|
||||
|
||||
}
|
||||
},
|
||||
formatProvider: {
|
||||
|
@ -21,6 +21,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
||||
suggestObserver = null;
|
||||
generateBeforeShowSuggestEvent = false;
|
||||
generateSelectSuggestEvent = false;
|
||||
generateBeforeHoverEvent = false;
|
||||
statusBarWidget = null;
|
||||
|
||||
reserMark = function() {
|
||||
@ -742,6 +743,12 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
||||
|
||||
}
|
||||
|
||||
enableBeforeHoverEvent = function(enabled) {
|
||||
|
||||
generateBeforeHoverEvent = enabled;
|
||||
|
||||
}
|
||||
|
||||
hideSuggestionsList = function() {
|
||||
|
||||
let widget = document.querySelector('.suggest-widget');
|
||||
@ -750,6 +757,15 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
||||
|
||||
}
|
||||
|
||||
hideHoverList = function() {
|
||||
|
||||
let hovers = document.querySelectorAll('.monaco-editor-hover .hover-row');
|
||||
hovers.forEach(function(hover){
|
||||
hover.remove();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
openSearchWidget = function() {
|
||||
|
||||
editor.trigger('', 'actions.find');
|
||||
|
Loading…
Reference in New Issue
Block a user