diff --git a/src/sql/parts/query/common/query.contribution.ts b/src/sql/parts/query/common/query.contribution.ts index 965fade9ef..14711f144e 100644 --- a/src/sql/parts/query/common/query.contribution.ts +++ b/src/sql/parts/query/common/query.contribution.ts @@ -289,6 +289,21 @@ let registryProperties = { 'description': localize('sql.saveAsCsv.delimiter', '[Optional] The custom delimiter to use between values when saving as CSV'), 'default': ',' }, + 'sql.saveAsCsv.lineSeperator': { + 'type': '', + 'description': localize('sql.saveAsCsv.lineSeperator', '[Optional] Character(s) used for seperating rows when saving results as CSV'), + 'default': null + }, + 'sql.saveAsCsv.textIdentifier': { + 'type': 'string', + 'description': localize('sql.saveAsCsv.textIdentifier', '[Optional] Character used for enclosing text fields when saving results as CSV'), + 'default': '\"' + }, + 'sql.saveAsCsv.encoding': { + 'type': 'string', + 'description': localize('sql.saveAsCsv.encoding', '[Optional] File encoding used when saving results as CSV'), + 'default': 'utf-8' + }, 'sql.copyIncludeHeaders': { 'type': 'boolean', 'description': localize('sql.copyIncludeHeaders', '[Optional] Configuration options for copying results from the Results View'), diff --git a/src/sql/parts/query/common/resultSerializer.ts b/src/sql/parts/query/common/resultSerializer.ts index a59033bc3a..140767af28 100644 --- a/src/sql/parts/query/common/resultSerializer.ts +++ b/src/sql/parts/query/common/resultSerializer.ts @@ -189,6 +189,15 @@ export class ResultSerializer { if (saveConfig.delimiter !== undefined) { saveResultsParams.delimiter = saveConfig.delimiter; } + if (saveConfig.lineSeperator !== undefined) { + saveResultsParams.lineSeperator = saveConfig.lineSeperator; + } + if (saveConfig.textIdentifier !== undefined) { + saveResultsParams.textIdentifier = saveConfig.textIdentifier; + } + if (saveConfig.encoding !== undefined) { + saveResultsParams.encoding = saveConfig.encoding; + } } return saveResultsParams; @@ -207,6 +216,9 @@ export class ResultSerializer { let config = this.getConfigForCsv(); config.resultFormat = SaveFormat.EXCEL; config.delimiter = undefined; + config.lineSeperator = undefined; + config.textIdentifier = undefined; + config.encoding = undefined; return config; } diff --git a/src/sql/sqlops.d.ts b/src/sql/sqlops.d.ts index 1e8272459e..8d36b68f9c 100644 --- a/src/sql/sqlops.d.ts +++ b/src/sql/sqlops.d.ts @@ -848,6 +848,9 @@ declare module 'sqlops' { columnEndIndex: number; includeHeaders?: boolean; delimiter?: string; + lineSeperator?: string; + textIdentifier?: string; + encoding?: string; } export interface SaveResultRequestResult {