Remove the manual step of a user having to make or edit their settings.json, and do this from within the extension. The part they need to add is the "files.associations" part.
// const folderPath = vscode.workspace.workspaceFolders[0].uri.toString().split(":")[1];
// // try make .vscode for user
// fs.mkdir(path.join(folderPath, '.vscode'), (err) => {
// if (err) {
// // .vscode already exists
// } else {
// vscode.window.showInformationMessage("Created the .vscode directory")
// }
// try {
// if (fs.existsSync(path.join(folderPath, ".vscode/settings.json"))) {
// // settings do exist
// const settingsConfig = workspace.getConfiguration('settings', vscode.workspace.workspaceFolders[0].uri);
// settingsConfig.update("a", 'hello', vscode.ConfigurationTarget.Workspace) // todo doesnt work
// vscode.window.showInformationMessage('Updated your settings')
// } else {
// // settings don't exist
// fs.writeFile(path.join(folderPath, ".vscode/settings.json"), JSON.stringify({
// "files.associations": {
// "*.dml": "html"
// }
// }, null, 2))
// }
// } catch(err) {
// // some error
// }
// });
I believe the extension can save settings in the package.json, and this will override any client settings. This is of course the preferred way, as we. only need to add a few lines to a file, but again, i haven't got this to work and unsure on how to