Skip to content

Commit 7f63001

Browse files
committed
fix: rename settings: jsxEmmet and jsxPseudoEmmet to fix default values collision
feat: Add new settings auto-migration functionality, it won't harm!
1 parent 709c225 commit 7f63001

File tree

6 files changed

+36
-7
lines changed

6 files changed

+36
-7
lines changed

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,8 @@
1414
],
1515
}
1616
}
17+
],
18+
"githubPullRequests.ignoredPullRequestBranches": [
19+
"develop"
1720
]
1821
}

src/configurationType.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,10 @@ export type Configuration = {
120120
'removeCodeFixes.codefixes': ('fixMissingMember' | 'fixMissingProperties' | 'fixMissingAttributes' | 'fixMissingFunctionDeclaration')[]
121121
/**
122122
* Use full-blown emmet in jsx/tsx files!
123-
* Requires `jsxPseudoEmmet` be off and `emmet.excludeLanguages` to have `javascriptreact` and `typescriptreact`
123+
* Requires `jsxPseudoEmmet.enabled` to be disabled and `emmet.excludeLanguages` to have `javascriptreact` and `typescriptreact`
124124
* @default true
125125
* */
126-
jsxEmmet: boolean
126+
'jsxEmmet.enable': boolean
127127
/**
128128
* Override snippet inserted on `.` literally
129129
* @default false
@@ -141,7 +141,7 @@ export type Configuration = {
141141
* Suggests only common tags such as div
142142
* @default false
143143
*/
144-
jsxPseudoEmmet: boolean
144+
'jsxPseudoEmmet.enable': boolean
145145
/**
146146
* Note: Sorting matters
147147
*/

src/emmet.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ export const registerEmmet = async () => {
1919
reactLangs,
2020
{
2121
async provideCompletionItems(document, position, token, context) {
22-
if (!getExtensionSetting('jsxEmmet')) return
22+
if (!getExtensionSetting('jsxEmmet.enable')) return
2323
const emmetConfig = vscode.workspace.getConfiguration('emmet')
2424
if (isEmmetEnabled && !emmetConfig.excludeLanguages.includes(document.languageId)) return
2525

2626
const result = await sendCommand<EmmetResult>('emmet-completions', { document, position })
2727
if (!result) return
28-
const offset = document.offsetAt(position)
28+
const offset: number = document.offsetAt(position)
2929
const sendToEmmet = document.getText().slice(offset + result.emmetTextOffset, offset)
3030
const emmetCompletions = emmet.doComplete(
3131
{

src/extension.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
import * as vscode from 'vscode'
33
import { defaultJsSupersetLangs } from '@zardoy/vscode-utils/build/langs'
44
import { getActiveRegularEditor } from '@zardoy/vscode-utils'
5-
import { extensionCtx, getExtensionSettingId, getExtensionCommandId, registerActiveDevelopmentCommand } from 'vscode-framework'
5+
import { extensionCtx, getExtensionSettingId, getExtensionCommandId } from 'vscode-framework'
66
import { pickObj } from '@zardoy/utils'
77
import { TriggerCharacterCommand } from '../typescript/src/ipcTypes'
88
import { Configuration } from './configurationType'
99
import webImports from './webImports'
1010
import { sendCommand } from './sendCommand'
1111
import { registerEmmet } from './emmet'
1212
import experimentalPostfixes from './experimentalPostfixes'
13+
import migrateSettings from './migrateSettings'
1314

1415
export const activateTsPlugin = (tsApi: { configurePlugin; onCompletionAccepted }) => {
1516
let webWaitingForConfigSync = false
@@ -121,6 +122,8 @@ export const activateTsPlugin = (tsApi: { configurePlugin; onCompletionAccepted
121122
}
122123

123124
export const activate = async () => {
125+
migrateSettings()
126+
124127
const possiblyActivateTsPlugin = async () => {
125128
const tsExtension = vscode.extensions.getExtension('vscode.typescript-language-features')
126129
if (!tsExtension) return

src/migrateSettings.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { migrateExtensionSettings } from '../../vscode-utils/build/migrateSettings'
2+
3+
export default () => {
4+
void migrateExtensionSettings(
5+
[
6+
{
7+
rename: {
8+
old: 'jsxEmmet',
9+
new: 'jsxEmmet.enable',
10+
mustBePrimitive: true,
11+
},
12+
},
13+
{
14+
rename: {
15+
old: 'jsxPseudoEmmet',
16+
new: 'jsxPseudoEmmet.enable',
17+
mustBePrimitive: true,
18+
},
19+
},
20+
],
21+
process.env.IDS_PREFIX!,
22+
)
23+
}

typescript/src/completionsAtPosition.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export const getCompletionsAtPosition = (
7070

7171
// #region Fake emmet
7272
if (
73-
c('jsxPseudoEmmet') &&
73+
c('jsxPseudoEmmet.enable') &&
7474
leftNode &&
7575
prepareTextForEmmet(fileName, leftNode, sourceFile, position, languageService) !== false &&
7676
ensurePrior() &&

0 commit comments

Comments
 (0)