@codingame/monaco-vscode-keybindings-service-override 4.1.0 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/keybindings.js +6 -6
- package/package.json +9 -9
- package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +50 -0
- package/vscode/src/vs/platform/keyboardLayout/common/keyboardMapper.js +24 -0
- package/vscode/src/vs/workbench/contrib/commands/common/commands.contribution.js +146 -0
- package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +29 -0
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js +250 -0
- package/vscode/src/vs/workbench/contrib/preferences/common/smartSnippetInserter.js +126 -0
- package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +1597 -0
- package/vscode/src/vs/workbench/services/commands/common/commandService.js +79 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +947 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +502 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/_.contribution.js +14 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/cz.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de-swiss.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.linux.js +181 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dk.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dvorak.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-belgian.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-ext.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-in.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.darwin.js +134 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.linux.js +183 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.win.js +168 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es-latin.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.linux.js +181 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.linux.js +181 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/hu.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp-roman.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ko.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.darwin.js +17 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux.js +6 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.win.js +23 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/no.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt-br.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.linux.js +181 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/sv.win.js +165 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/thai.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/tr.win.js +163 -0
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/zh-hans.darwin.js +126 -0
- package/vscode/src/vs/workbench/services/keybinding/common/keybindingIO.js +74 -0
- package/vscode/src/vs/workbench/services/keybinding/common/keymapInfo.js +110 -0
- package/vscode/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +888 -0
- package/vscode/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +352 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { createScanner } from 'vscode/vscode/vs/base/common/json';
|
|
2
|
+
import { Position } from 'vscode/vscode/vs/editor/common/core/position';
|
|
3
|
+
import { Range } from 'vscode/vscode/vs/editor/common/core/range';
|
|
4
|
+
|
|
5
|
+
class SmartSnippetInserter {
|
|
6
|
+
static hasOpenBrace(scanner) {
|
|
7
|
+
while (scanner.scan() !== 17 ) {
|
|
8
|
+
const kind = scanner.getToken();
|
|
9
|
+
if (kind === 1 ) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
static offsetToPosition(model, offset) {
|
|
16
|
+
let offsetBeforeLine = 0;
|
|
17
|
+
const eolLength = model.getEOL().length;
|
|
18
|
+
const lineCount = model.getLineCount();
|
|
19
|
+
for (let lineNumber = 1; lineNumber <= lineCount; lineNumber++) {
|
|
20
|
+
const lineTotalLength = model.getLineLength(lineNumber) + eolLength;
|
|
21
|
+
const offsetAfterLine = offsetBeforeLine + lineTotalLength;
|
|
22
|
+
if (offsetAfterLine > offset) {
|
|
23
|
+
return ( new Position(lineNumber, offset - offsetBeforeLine + 1));
|
|
24
|
+
}
|
|
25
|
+
offsetBeforeLine = offsetAfterLine;
|
|
26
|
+
}
|
|
27
|
+
return ( new Position(lineCount, model.getLineMaxColumn(lineCount)));
|
|
28
|
+
}
|
|
29
|
+
static insertSnippet(model, _position) {
|
|
30
|
+
const desiredPosition = model.getValueLengthInRange(( new Range(1, 1, _position.lineNumber, _position.column)));
|
|
31
|
+
let State;
|
|
32
|
+
( (function(State) {
|
|
33
|
+
State[State["INVALID"] = 0] = "INVALID";
|
|
34
|
+
State[State["AFTER_OBJECT"] = 1] = "AFTER_OBJECT";
|
|
35
|
+
State[State["BEFORE_OBJECT"] = 2] = "BEFORE_OBJECT";
|
|
36
|
+
})(State || (State = {})));
|
|
37
|
+
let currentState = State.INVALID;
|
|
38
|
+
let lastValidPos = -1;
|
|
39
|
+
let lastValidState = State.INVALID;
|
|
40
|
+
const scanner = createScanner(model.getValue());
|
|
41
|
+
let arrayLevel = 0;
|
|
42
|
+
let objLevel = 0;
|
|
43
|
+
const checkRangeStatus = (pos, state) => {
|
|
44
|
+
if (state !== State.INVALID && arrayLevel === 1 && objLevel === 0) {
|
|
45
|
+
currentState = state;
|
|
46
|
+
lastValidPos = pos;
|
|
47
|
+
lastValidState = state;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (currentState !== State.INVALID) {
|
|
51
|
+
currentState = State.INVALID;
|
|
52
|
+
lastValidPos = scanner.getTokenOffset();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
while (scanner.scan() !== 17 ) {
|
|
57
|
+
const currentPos = scanner.getPosition();
|
|
58
|
+
const kind = scanner.getToken();
|
|
59
|
+
let goodKind = false;
|
|
60
|
+
switch (kind) {
|
|
61
|
+
case 3 :
|
|
62
|
+
goodKind = true;
|
|
63
|
+
arrayLevel++;
|
|
64
|
+
checkRangeStatus(currentPos, State.BEFORE_OBJECT);
|
|
65
|
+
break;
|
|
66
|
+
case 4 :
|
|
67
|
+
goodKind = true;
|
|
68
|
+
arrayLevel--;
|
|
69
|
+
checkRangeStatus(currentPos, State.INVALID);
|
|
70
|
+
break;
|
|
71
|
+
case 5 :
|
|
72
|
+
goodKind = true;
|
|
73
|
+
checkRangeStatus(currentPos, State.BEFORE_OBJECT);
|
|
74
|
+
break;
|
|
75
|
+
case 1 :
|
|
76
|
+
goodKind = true;
|
|
77
|
+
objLevel++;
|
|
78
|
+
checkRangeStatus(currentPos, State.INVALID);
|
|
79
|
+
break;
|
|
80
|
+
case 2 :
|
|
81
|
+
goodKind = true;
|
|
82
|
+
objLevel--;
|
|
83
|
+
checkRangeStatus(currentPos, State.AFTER_OBJECT);
|
|
84
|
+
break;
|
|
85
|
+
case 15 :
|
|
86
|
+
case 14 :
|
|
87
|
+
goodKind = true;
|
|
88
|
+
}
|
|
89
|
+
if (currentPos >= desiredPosition && (currentState !== State.INVALID || lastValidPos !== -1)) {
|
|
90
|
+
let acceptPosition;
|
|
91
|
+
let acceptState;
|
|
92
|
+
if (currentState !== State.INVALID) {
|
|
93
|
+
acceptPosition = (goodKind ? currentPos : scanner.getTokenOffset());
|
|
94
|
+
acceptState = currentState;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
acceptPosition = lastValidPos;
|
|
98
|
+
acceptState = lastValidState;
|
|
99
|
+
}
|
|
100
|
+
if (acceptState === State.AFTER_OBJECT) {
|
|
101
|
+
return {
|
|
102
|
+
position: this.offsetToPosition(model, acceptPosition),
|
|
103
|
+
prepend: ',',
|
|
104
|
+
append: ''
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
scanner.setPosition(acceptPosition);
|
|
109
|
+
return {
|
|
110
|
+
position: this.offsetToPosition(model, acceptPosition),
|
|
111
|
+
prepend: '',
|
|
112
|
+
append: this.hasOpenBrace(scanner) ? ',' : ''
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const modelLineCount = model.getLineCount();
|
|
118
|
+
return {
|
|
119
|
+
position: ( new Position(modelLineCount, model.getLineMaxColumn(modelLineCount))),
|
|
120
|
+
prepend: '\n[',
|
|
121
|
+
append: ']'
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export { SmartSnippetInserter };
|