diff --git a/src/pragmaUtil.ts b/src/pragmaUtil.ts index 1d76864e..d6267fb1 100644 --- a/src/pragmaUtil.ts +++ b/src/pragmaUtil.ts @@ -118,12 +118,12 @@ export default class PragmaUtil { * Remove @sync-ignore settings before upload. * * @static - * @param {string} settingsContent + * @param {string} fileContent * @returns {string} * @memberof PragmaUtil */ - public static processBeforeUpload(settingsContent: string): string { - const lines = settingsContent.split("\n"); + public static processBeforeUpload(fileContent: string): string { + const lines = fileContent.split("\n"); let osMatch: RegExpMatchArray; let osFromPragma: string; @@ -258,7 +258,7 @@ export default class PragmaUtil { parsedLines.push(this.toggleComments(currentLine, shouldComment)); } - const opensCurlyBraces = /".+"\s*:\s*{/.test(currentLine); + const opensCurlyBraces = /{/.test(currentLine); const opensBrackets = /".+"\s*:\s*\[/.test(currentLine); let openedBlock = opensCurlyBraces || opensBrackets; diff --git a/src/setting.ts b/src/setting.ts index 0efa77e6..88231e61 100644 --- a/src/setting.ts +++ b/src/setting.ts @@ -57,4 +57,5 @@ export class CustomSettings { public askGistName: boolean = false; public customFiles: { [key: string]: string } = {}; public hostName: string = null; + public universalKeybindings: boolean = false; } diff --git a/src/sync.ts b/src/sync.ts index cd498faa..aef90aeb 100644 --- a/src/sync.ts +++ b/src/sync.ts @@ -221,7 +221,8 @@ export class Sync { if (snippetFile.content !== "") { if (snippetFile.fileName === env.FILE_KEYBINDING_NAME) { snippetFile.gistName = - env.OsType === OsType.Mac + env.OsType === OsType.Mac && + !customSettings.universalKeybindings ? env.FILE_KEYBINDING_MAC : env.FILE_KEYBINDING_DEFAULT; } @@ -229,7 +230,11 @@ export class Sync { } } - if (snippetFile.fileName === env.FILE_SETTING_NAME) { + if ( + snippetFile.fileName === env.FILE_SETTING_NAME || + snippetFile.fileName === env.FILE_KEYBINDING_MAC || + snippetFile.fileName === env.FILE_KEYBINDING_DEFAULT + ) { try { snippetFile.content = PragmaUtil.processBeforeUpload( snippetFile.content @@ -485,17 +490,23 @@ export class Sync { ); updatedFiles.push(f); } else if (gistName.indexOf(".") > -1) { - if ( - env.OsType === OsType.Mac && - gistName === env.FILE_KEYBINDING_DEFAULT - ) { - return; - } - if ( - env.OsType !== OsType.Mac && - gistName === env.FILE_KEYBINDING_MAC - ) { - return; + if (customSettings.universalKeybindings) { + if (gistName === env.FILE_KEYBINDING_MAC) { + return; + } + } else { + if ( + env.OsType === OsType.Mac && + gistName === env.FILE_KEYBINDING_DEFAULT + ) { + return; + } + if ( + env.OsType !== OsType.Mac && + gistName === env.FILE_KEYBINDING_MAC + ) { + return; + } } const f: File = new File( gistName, @@ -583,7 +594,7 @@ export class Sync { file.gistName === env.FILE_KEYBINDING_MAC ) { let test: string = ""; - env.OsType === OsType.Mac + env.OsType === OsType.Mac && !customSettings.universalKeybindings ? (test = env.FILE_KEYBINDING_MAC) : (test = env.FILE_KEYBINDING_DEFAULT); if (file.gistName !== test) { @@ -604,7 +615,11 @@ export class Sync { ); } - if (file.gistName === env.FILE_SETTING_NAME) { + if ( + file.gistName === env.FILE_SETTING_NAME || + file.gistName === env.FILE_KEYBINDING_MAC || + file.gistName === env.FILE_KEYBINDING_DEFAULT + ) { const localContent = await FileService.ReadFile(filePath); content = PragmaUtil.processBeforeWrite( localContent,