Skip to content

Commit eb41a22

Browse files
committed
return keyword: also remove trailing space after enter
1 parent 0da7a28 commit eb41a22

File tree

3 files changed

+33
-39
lines changed

3 files changed

+33
-39
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
"@vscode/emmet-helper": "^2.8.4",
7575
"@vscode/test-electron": "^2.1.5",
7676
"@zardoy/utils": "^0.0.9",
77-
"@zardoy/vscode-utils": "^0.0.45",
77+
"@zardoy/vscode-utils": "^0.0.46",
7878
"chai": "^4.3.6",
7979
"chokidar": "^3.5.3",
8080
"chokidar-cli": "^3.0.0",
@@ -93,6 +93,7 @@
9393
"require-from-string": "^2.0.2",
9494
"string-dedent": "^3.0.1",
9595
"ts-expose-internals": "^4.8.4",
96+
"ts-simple-type": "^1.0.7",
9697
"unleashed-typescript": "^1.3.0",
9798
"vscode-framework": "^0.0.18",
9899
"vscode-uri": "^3.0.6"

pnpm-lock.yaml

Lines changed: 14 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/onCompletionAccepted.ts

Lines changed: 17 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import * as vscode from 'vscode'
22
import { getActiveRegularEditor } from '@zardoy/vscode-utils'
3-
import { watchExtensionSettings } from '@zardoy/vscode-utils/build/settings'
4-
import { getExtensionSetting, Settings } from 'vscode-framework'
3+
import { conditionallyRegister } from '@zardoy/vscode-utils/build/settings'
4+
import { expandPosition } from '@zardoy/vscode-utils/build/position'
5+
import { getExtensionSetting } from 'vscode-framework'
56
import { oneOf } from '@zardoy/utils'
67

78
export default (tsApi: { onCompletionAccepted }) => {
@@ -61,38 +62,24 @@ export default (tsApi: { onCompletionAccepted }) => {
6162
return
6263
}
6364

64-
if (char === ';') {
65-
void vscode.window.activeTextEditor.edit(builder => {
66-
for (const { range } of contentChanges) {
67-
const pos = range.start
68-
builder.delete(new vscode.Range(pos.translate(0, -1), pos))
69-
}
70-
})
65+
if (char === ';' || char === '\n') {
66+
void vscode.window.activeTextEditor.edit(
67+
builder => {
68+
for (const { range } of contentChanges) {
69+
const pos = range.start
70+
builder.delete(expandPosition(document, pos, -1))
71+
}
72+
},
73+
{
74+
undoStopAfter: false,
75+
undoStopBefore: false,
76+
},
77+
)
7178
}
7279
} finally {
7380
justAcceptedReturnKeywordSuggestion = false
7481
}
7582
}),
76-
val => val !== 'none',
83+
() => getExtensionSetting('suggestions.keywordsInsertText') !== 'none',
7784
)
7885
}
79-
80-
const conditionallyRegister = <T extends keyof Settings>(
81-
settingKey: T,
82-
registerFn: () => vscode.Disposable,
83-
acceptSettingValue: (val: Settings[T]) => boolean = val => !!val,
84-
) => {
85-
let disposable: vscode.Disposable | undefined
86-
const changeRegisterState = () => {
87-
const registerState = acceptSettingValue(getExtensionSetting(settingKey))
88-
if (registerState) {
89-
if (!disposable) disposable = registerFn()
90-
} else {
91-
disposable?.dispose()
92-
disposable = undefined
93-
}
94-
}
95-
96-
changeRegisterState()
97-
watchExtensionSettings([settingKey], changeRegisterState)
98-
}

0 commit comments

Comments
 (0)