You've already forked bsl_console
mirror of
https://github.com/salexdv/bsl_console.git
synced 2025-07-17 01:32:20 +02:00
Генерация события при выборе строки из списка подсказок closes #56
This commit is contained in:
@ -70,6 +70,7 @@
|
|||||||
| [`enableModificationEvent`](docs/modification_event.md) | Включает/выключает генерацию события, возникающего при изменении содержимого редактора|
|
| [`enableModificationEvent`](docs/modification_event.md) | Включает/выключает генерацию события, возникающего при изменении содержимого редактора|
|
||||||
| [`enableSuggestActivationEvent`](docs/activation_event.md) | Включает/выключает генерацию события, возникающего активации пункта в списке подсказок|
|
| [`enableSuggestActivationEvent`](docs/activation_event.md) | Включает/выключает генерацию события, возникающего активации пункта в списке подсказок|
|
||||||
| [`enableBeforeShowSuggestEvent`](docs/before_suggest_event.md) | Включает/выключает генерацию события, возникающего перед появлением списка подсказок|
|
| [`enableBeforeShowSuggestEvent`](docs/before_suggest_event.md) | Включает/выключает генерацию события, возникающего перед появлением списка подсказок|
|
||||||
|
| [`enableSelectSuggestEvent`](docs/select_suggest_event.md) | Включает/выключает генерацию события, возникающего при выборе пункта из списка подсказок|
|
||||||
| [`switchQueryMode`](docs/switch_query.md) | Переключение между режимом запроса и режимом редактирования кода |
|
| [`switchQueryMode`](docs/switch_query.md) | Переключение между режимом запроса и режимом редактирования кода |
|
||||||
| [`compare`](docs/compare.md) | Включает/выключает режим сравнения текстов |
|
| [`compare`](docs/compare.md) | Включает/выключает режим сравнения текстов |
|
||||||
| `nextDiff` | Переход с следующему изменению в режиме сравнения |
|
| `nextDiff` | Переход с следующему изменению в режиме сравнения |
|
||||||
@ -103,7 +104,9 @@
|
|||||||
| `EVENT_CONTENT_CHANGED` | При любом изменении содержимого редактора. Вкл/откл через *enableModificationEvent* |
|
| `EVENT_CONTENT_CHANGED` | При любом изменении содержимого редактора. Вкл/откл через *enableModificationEvent* |
|
||||||
| `EVENT_GET_METADATA` | Генерируется при отсутствии метаданных. В параметрах передается имя запрашиваемых метаданных |
|
| `EVENT_GET_METADATA` | Генерируется при отсутствии метаданных. В параметрах передается имя запрашиваемых метаданных |
|
||||||
| `EVENT_XXX` | При выборе пользовательского пункта меню. *addContextMenuItem('Мой пункт', 'EVENT_MY')* |
|
| `EVENT_XXX` | При выборе пользовательского пункта меню. *addContextMenuItem('Мой пункт', 'EVENT_MY')* |
|
||||||
| `EVENT_ON_ACTIVATE_SUGGEST_ROW`| При активации пункта в текущем списке подсказок |
|
| `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) |
|
||||||
|
|
||||||
*Перед началом работы с редактором из 1С Предпрития желательно вызвать функцию инициализации и передать в нее текущую версию платформы.*
|
*Перед началом работы с редактором из 1С Предпрития желательно вызвать функцию инициализации и передать в нее текущую версию платформы.*
|
||||||
Пример:
|
Пример:
|
||||||
|
@ -21,7 +21,6 @@ enableBeforeShowSuggestEvent(false);
|
|||||||
"current_word": "",
|
"current_word": "",
|
||||||
"last_word": "авансовыйотчет",
|
"last_word": "авансовыйотчет",
|
||||||
"last_expression": "документы.авансовыйотчет.",
|
"last_expression": "документы.авансовыйотчет.",
|
||||||
"focused": "Выбрать",
|
|
||||||
"rows": [
|
"rows": [
|
||||||
"Выбрать",
|
"Выбрать",
|
||||||
"НайтиПоНомеру",
|
"НайтиПоНомеру",
|
||||||
|
40
docs/select_suggest_event.md
Normal file
40
docs/select_suggest_event.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Функция *enableSelectSuggestEvent*
|
||||||
|
## Назначение функции
|
||||||
|
Функция включает/выключает генерацию события *EVENT_ON_SELECT_SUGGEST_ROW*, которое возникает при выборе пункта из списка подсказок
|
||||||
|
|
||||||
|
## Параметры функции
|
||||||
|
* **enabled** - *boolean*, активность события
|
||||||
|
|
||||||
|
## Пример вызова
|
||||||
|
```javascript
|
||||||
|
// Включение генерации события
|
||||||
|
enableSelectSuggestEvent(true);
|
||||||
|
|
||||||
|
// Отключение генерации события
|
||||||
|
enableSelectSuggestEvent(false);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Пример параметров генерируемого события
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"trigger": ".",
|
||||||
|
"current_word": "",
|
||||||
|
"last_word": "авансовыйотчет",
|
||||||
|
"last_expression": "документы.авансовыйотчет.",
|
||||||
|
"selected": "Выбрать",
|
||||||
|
"rows": [
|
||||||
|
"Выбрать",
|
||||||
|
"НайтиПоНомеру",
|
||||||
|
"НайтиПоРеквизиту",
|
||||||
|
"ПолучитьДанныеВыбора",
|
||||||
|
"ПолучитьМакет",
|
||||||
|
"ПолучитьСсылку",
|
||||||
|
"ПолучитьФорму",
|
||||||
|
"ПолучитьФормуВыбора",
|
||||||
|
"ПолучитьФормуНовогоДокумента",
|
||||||
|
"ПолучитьФормуСписка",
|
||||||
|
"ПустаяСсылка",
|
||||||
|
"СоздатьДокумент"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
@ -20,6 +20,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
|||||||
err_tid = 0;
|
err_tid = 0;
|
||||||
suggestObserver = null;
|
suggestObserver = null;
|
||||||
generateBeforeShowSuggestEvent = false;
|
generateBeforeShowSuggestEvent = false;
|
||||||
|
generateSelectSuggestEvent = false;
|
||||||
|
|
||||||
reserMark = function() {
|
reserMark = function() {
|
||||||
|
|
||||||
@ -670,7 +671,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
genarateEventWithSuggestData = function(eventName, suggestRows, trigger, focused) {
|
genarateEventWithSuggestData = function(eventName, suggestRows, trigger, extra) {
|
||||||
|
|
||||||
let bsl = new bslHelper(editor.getModel(), editor.getPosition());
|
let bsl = new bslHelper(editor.getModel(), editor.getPosition());
|
||||||
|
|
||||||
@ -679,10 +680,14 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
|||||||
current_word: bsl.word,
|
current_word: bsl.word,
|
||||||
last_word: bsl.lastRawExpression,
|
last_word: bsl.lastRawExpression,
|
||||||
last_expression: bsl.lastExpression,
|
last_expression: bsl.lastExpression,
|
||||||
focused: focused,
|
|
||||||
rows: suggestRows
|
rows: suggestRows
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (eventName == 'EVENT_ON_ACTIVATE_SUGGEST_ROW')
|
||||||
|
eventParams['focused'] = extra;
|
||||||
|
else if (eventName == 'EVENT_ON_SELECT_SUGGEST_ROW')
|
||||||
|
eventParams['selected'] = extra;
|
||||||
|
|
||||||
sendEvent(eventName, eventParams);
|
sendEvent(eventName, eventParams);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -730,6 +735,12 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enableSelectSuggestEvent = function(enabled) {
|
||||||
|
|
||||||
|
generateSelectSuggestEvent = enabled;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
hideSuggestionsList = function() {
|
hideSuggestionsList = function() {
|
||||||
|
|
||||||
let widget = document.querySelector('.suggest-widget');
|
let widget = document.querySelector('.suggest-widget');
|
||||||
@ -808,6 +819,14 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
|||||||
|
|
||||||
if (e.code == 'ArrowUp' && editor.getPosition().lineNumber == 1)
|
if (e.code == 'ArrowUp' && editor.getPosition().lineNumber == 1)
|
||||||
scrollToTop();
|
scrollToTop();
|
||||||
|
else if (e.code == 'Enter' && generateSelectSuggestEvent) {
|
||||||
|
let element = document.querySelector('.monaco-list-row.focused');
|
||||||
|
if (element) {
|
||||||
|
let rows = getSuggestWidgetRows(element);
|
||||||
|
genarateEventWithSuggestData('EVENT_ON_SELECT_SUGGEST_ROW', rows, 'selection', element.getAttribute('aria-label'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user