alm
Version:
The best IDE for TypeScript
78 lines (77 loc) • 3.85 kB
JavaScript
;
/**
* Maintainance:
* When a new option is added add it to:
* - the FormatCodeOptions interface
* - the defaultFormatCodeOptions function
* - the makeFormatCodeOptions function
*/
Object.defineProperty(exports, "__esModule", { value: true });
var os = require("os");
function defaultFormatCodeOptions() {
return {
IndentSize: 4,
TabSize: 4,
NewLineCharacter: os.EOL,
ConvertTabsToSpaces: true,
IndentStyle: ts.IndentStyle.Smart,
InsertSpaceAfterCommaDelimiter: true,
InsertSpaceAfterSemicolonInForStatements: true,
InsertSpaceBeforeAndAfterBinaryOperators: true,
InsertSpaceAfterKeywordsInControlFlowStatements: true,
InsertSpaceAfterFunctionKeywordForAnonymousFunctions: false,
InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,
InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,
PlaceOpenBraceOnNewLineForFunctions: false,
PlaceOpenBraceOnNewLineForControlBlocks: false,
};
}
exports.defaultFormatCodeOptions = defaultFormatCodeOptions;
function makeFormatCodeOptions(config) {
var options = defaultFormatCodeOptions();
if (!config) {
return options;
}
if (typeof config.insertSpaceAfterCommaDelimiter === "boolean") {
options.InsertSpaceAfterCommaDelimiter = config.insertSpaceAfterCommaDelimiter;
}
if (typeof config.insertSpaceAfterSemicolonInForStatements === "boolean") {
options.InsertSpaceAfterSemicolonInForStatements = config.insertSpaceAfterSemicolonInForStatements;
}
if (typeof config.insertSpaceBeforeAndAfterBinaryOperators === "boolean") {
options.InsertSpaceBeforeAndAfterBinaryOperators = config.insertSpaceBeforeAndAfterBinaryOperators;
}
if (typeof config.insertSpaceAfterKeywordsInControlFlowStatements === "boolean") {
options.InsertSpaceAfterKeywordsInControlFlowStatements = config.insertSpaceAfterKeywordsInControlFlowStatements;
}
if (typeof config.insertSpaceAfterFunctionKeywordForAnonymousFunctions === "boolean") {
options.InsertSpaceAfterFunctionKeywordForAnonymousFunctions = config.insertSpaceAfterFunctionKeywordForAnonymousFunctions;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis === "boolean") {
options.InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets === "boolean") {
options.InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces === "boolean") {
options.InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces = config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces;
}
if (typeof config.placeOpenBraceOnNewLineForFunctions === "boolean") {
options.PlaceOpenBraceOnNewLineForFunctions = config.placeOpenBraceOnNewLineForFunctions;
}
if (typeof config.placeOpenBraceOnNewLineForControlBlocks === "boolean") {
options.PlaceOpenBraceOnNewLineForControlBlocks = config.placeOpenBraceOnNewLineForControlBlocks;
}
if (typeof config.tabSize === "number") {
options.TabSize = config.tabSize;
}
if (typeof config.newLineCharacter === "string") {
options.NewLineCharacter = config.newLineCharacter;
}
if (typeof config.convertTabsToSpaces === "boolean") {
options.ConvertTabsToSpaces = config.convertTabsToSpaces;
}
return options;
}
exports.makeFormatCodeOptions = makeFormatCodeOptions;