mirror of
https://github.com/salexdv/bsl_console.git
synced 2024-11-28 08:48:48 +02:00
Генерация события при выборе строки из списка подсказок closes #56
This commit is contained in:
parent
16ddd43eae
commit
ccd6a46247
@ -70,6 +70,7 @@
|
||||
| [`enableModificationEvent`](docs/modification_event.md) | Включает/выключает генерацию события, возникающего при изменении содержимого редактора|
|
||||
| [`enableSuggestActivationEvent`](docs/activation_event.md) | Включает/выключает генерацию события, возникающего активации пункта в списке подсказок|
|
||||
| [`enableBeforeShowSuggestEvent`](docs/before_suggest_event.md) | Включает/выключает генерацию события, возникающего перед появлением списка подсказок|
|
||||
| [`enableSelectSuggestEvent`](docs/select_suggest_event.md) | Включает/выключает генерацию события, возникающего при выборе пункта из списка подсказок|
|
||||
| [`switchQueryMode`](docs/switch_query.md) | Переключение между режимом запроса и режимом редактирования кода |
|
||||
| [`compare`](docs/compare.md) | Включает/выключает режим сравнения текстов |
|
||||
| `nextDiff` | Переход с следующему изменению в режиме сравнения |
|
||||
@ -103,7 +104,9 @@
|
||||
| `EVENT_CONTENT_CHANGED` | При любом изменении содержимого редактора. Вкл/откл через *enableModificationEvent* |
|
||||
| `EVENT_GET_METADATA` | Генерируется при отсутствии метаданных. В параметрах передается имя запрашиваемых метаданных |
|
||||
| `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С Предпрития желательно вызвать функцию инициализации и передать в нее текущую версию платформы.*
|
||||
Пример:
|
||||
|
@ -20,8 +20,7 @@ enableBeforeShowSuggestEvent(false);
|
||||
"trigger": ".",
|
||||
"current_word": "",
|
||||
"last_word": "авансовыйотчет",
|
||||
"last_expression": "документы.авансовыйотчет.",
|
||||
"focused": "Выбрать",
|
||||
"last_expression": "документы.авансовыйотчет.",
|
||||
"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;
|
||||
suggestObserver = null;
|
||||
generateBeforeShowSuggestEvent = false;
|
||||
generateSelectSuggestEvent = false;
|
||||
|
||||
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());
|
||||
|
||||
@ -678,10 +679,14 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
||||
trigger: trigger,
|
||||
current_word: bsl.word,
|
||||
last_word: bsl.lastRawExpression,
|
||||
last_expression: bsl.lastExpression,
|
||||
focused: focused,
|
||||
last_expression: bsl.lastExpression,
|
||||
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);
|
||||
|
||||
@ -730,6 +735,12 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
|
||||
|
||||
}
|
||||
|
||||
enableSelectSuggestEvent = function(enabled) {
|
||||
|
||||
generateSelectSuggestEvent = enabled;
|
||||
|
||||
}
|
||||
|
||||
hideSuggestionsList = function() {
|
||||
|
||||
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)
|
||||
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'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user