diff --git a/.eslintignore b/.eslintignore index 8b93a4199e..d9d240b38f 100644 --- a/.eslintignore +++ b/.eslintignore @@ -12,6 +12,8 @@ **/vscode-api-tests/testWorkspace2/** **/extensions/**/out/** **/extensions/**/build/** +**/big-data-cluster/src/bigDataCluster/controller/apiGenerated.ts +**/big-data-cluster/src/bigDataCluster/controller/clusterApiGenerated2.ts **/extensions/markdown-language-features/media/** **/extensions/markdown-language-features/notebook-out/** **/extensions/typescript-basics/test/colorize-fixtures/** diff --git a/.eslintrc.json b/.eslintrc.json index d82aad6e30..e323416d8d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -581,7 +581,9 @@ "iconv-lite-umd", "jschardet", "@angular/*", - "rxjs/**" + "rxjs/**", + "sanitize-html", + "ansi_up" ] }, { @@ -743,7 +745,6 @@ "html-query-plan", "turndown", "gridstack", - "gridstack/**", "mark.js", "vscode-textmate", "vscode-oniguruma", diff --git a/build/azure-pipelines/sql-product-compile.yml b/build/azure-pipelines/sql-product-compile.yml index ee6843f4fc..b4e04ef44e 100644 --- a/build/azure-pipelines/sql-product-compile.yml +++ b/build/azure-pipelines/sql-product-compile.yml @@ -79,19 +79,8 @@ steps: - script: | set -e - yarn sqllint - yarn gulp hygiene - yarn strict-vscode - yarn valid-layers-check - displayName: Run hygiene, eslint - condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) - -- script: | - set -e - yarn gulp compile-build - yarn gulp compile-extensions-build - yarn gulp minify-vscode - displayName: Compile + yarn npm-run-all -lp core-ci extensions-ci hygiene eslint valid-layers-check sqllint strict-vscode + displayName: Compile & Hygiene - script: | set -e diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index fcf28038fb..8c405c4520 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -112,33 +112,33 @@ gulp.task(optimizeVSCodeTask); // List of ADS extension XLF files that we want to put into the English resource folder. const extensionsFilter = filter([ - "**/admin-tool-ext-win.xlf", - "**/agent.xlf", - "**/arc.xlf", - "**/asde-deployment.xlf", - "**/azdata.xlf", - "**/azurecore.xlf", - "**/azurehybridtoolkit.xlf", - "**/big-data-cluster.xlf", - "**/cms.xlf", - "**/dacpac.xlf", - "**/data-workspace.xlf", - "**/import.xlf", - "**/kusto.xlf", - "**/machine-learning.xlf", - "**/Microsoft.sqlservernotebook.xlf", - "**/mssql.xlf", - "**/notebook.xlf", - "**/profiler.xlf", - "**/query-history.xlf", - "**/resource-deployment.xlf", - "**/schema-compare.xlf", - "**/server-report.xlf", - "**/sql-assessment.xlf", - "**/sql-database-projects.xlf", - "**/sql-migration.xlf", - "**/xml-language-features.xlf" -]) + '**/admin-tool-ext-win.xlf', + '**/agent.xlf', + '**/arc.xlf', + '**/asde-deployment.xlf', + '**/azdata.xlf', + '**/azurecore.xlf', + '**/azurehybridtoolkit.xlf', + '**/big-data-cluster.xlf', + '**/cms.xlf', + '**/dacpac.xlf', + '**/data-workspace.xlf', + '**/import.xlf', + '**/kusto.xlf', + '**/machine-learning.xlf', + '**/Microsoft.sqlservernotebook.xlf', + '**/mssql.xlf', + '**/notebook.xlf', + '**/profiler.xlf', + '**/query-history.xlf', + '**/resource-deployment.xlf', + '**/schema-compare.xlf', + '**/server-report.xlf', + '**/sql-assessment.xlf', + '**/sql-database-projects.xlf', + '**/sql-migration.xlf', + '**/xml-language-features.xlf' +]); // Copy ADS extension XLFs into English resource folder. const importExtensionsTask = task.define('import-extensions-xlfs', function () { @@ -149,7 +149,7 @@ const importExtensionsTask = task.define('import-extensions-xlfs', function () { ) .pipe(vfs.dest(`./resources/xlf/en`)); }); -gulp.task(importExtensionsTask) +gulp.task(importExtensionsTask); // {{SQL CARBON EDIT}} end const sourceMappingURLBase = `https://sqlopsbuilds.blob.core.windows.net/sourcemaps/${commit}`; @@ -486,7 +486,7 @@ const vscodeTranslationsExport = task.define( 'vscode-translations-export', task.series( compileBuildTask, - compileLocalizationExtensionsBuildTask, // {{SQL CARBON EDIT}} now include all extensions in ADS, not just a subset. (replaces "compileExtensionsBuildTask" here). + compileLocalizationExtensionsBuildTask, // {{SQL CARBON EDIT}} now include all extensions in ADS, not just a subset. (replaces 'compileExtensionsBuildTask' here). optimizeVSCodeTask, function () { const pathToMetadata = './out-vscode/nls.metadata.json'; @@ -501,7 +501,7 @@ const vscodeTranslationsExport = task.define( } ) ); -gulp.task(vscodeTranslationsExport) +gulp.task(vscodeTranslationsExport); // {{SQL CARBON EDIT}} Localization gulp task, runs vscodeTranslationsExport and imports a subset of the generated XLFs into the folder. gulp.task(task.define( diff --git a/src/sql/base/browser/ui/table/plugins/cellSelectionModel.plugin.ts b/src/sql/base/browser/ui/table/plugins/cellSelectionModel.plugin.ts index d4477ad323..f22a479a38 100644 --- a/src/sql/base/browser/ui/table/plugins/cellSelectionModel.plugin.ts +++ b/src/sql/base/browser/ui/table/plugins/cellSelectionModel.plugin.ts @@ -207,8 +207,7 @@ export class CellSelectionModel implements Slick.SelectionModel 10000) { - console.error('InsertIntoSelection infinite loop: Report this error on github'); - break; + throw new Error('InsertIntoSelection infinite loop'); } let shouldContinue = false; for (let current of newRanges) { diff --git a/src/sql/workbench/common/constants.ts b/src/sql/workbench/common/constants.ts index de138ef854..c99a74db8a 100644 --- a/src/sql/workbench/common/constants.ts +++ b/src/sql/workbench/common/constants.ts @@ -61,3 +61,8 @@ export interface INotebookSearchConfigurationProperties { }; sortOrder: SearchSortOrder; } + +export const RESULTS_GRID_DEFAULTS = { + cellPadding: [5, 8, 4], + rowHeight: 24 +}; diff --git a/src/sql/workbench/contrib/query/browser/queryResultsEditor.ts b/src/sql/workbench/contrib/query/browser/queryResultsEditor.ts index cbbeac1648..b7b6de400b 100644 --- a/src/sql/workbench/contrib/query/browser/queryResultsEditor.ts +++ b/src/sql/workbench/contrib/query/browser/queryResultsEditor.ts @@ -19,7 +19,7 @@ import { QueryResultsInput } from 'sql/workbench/common/editor/query/queryResult import { QueryResultsView } from 'sql/workbench/contrib/query/browser/queryResultsView'; import { CancellationToken } from 'vs/base/common/cancellation'; import { IStorageService } from 'vs/platform/storage/common/storage'; -import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/contrib/query/common/resultsGrid.contribution'; +import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/common/constants'; export const TextCompareEditorVisible = new RawContextKey('textCompareEditorVisible', false); diff --git a/src/sql/workbench/contrib/query/common/resultsGrid.contribution.ts b/src/sql/workbench/contrib/query/common/resultsGrid.contribution.ts index 2bebb56d28..873a0828bd 100644 --- a/src/sql/workbench/contrib/query/common/resultsGrid.contribution.ts +++ b/src/sql/workbench/contrib/query/common/resultsGrid.contribution.ts @@ -7,13 +7,9 @@ import { Extensions, IConfigurationRegistry, IConfigurationNode } from 'vs/platf import { Registry } from 'vs/platform/registry/common/platform'; import * as nls from 'vs/nls'; import * as editorOptions from 'vs/editor/common/config/editorOptions'; +import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/common/constants'; import EDITOR_FONT_DEFAULTS = editorOptions.EDITOR_FONT_DEFAULTS; -export const RESULTS_GRID_DEFAULTS = { - cellPadding: [5, 8, 4], - rowHeight: 24 -}; - const configurationRegistry = Registry.as(Extensions.Configuration); const resultsGridConfiguration: IConfigurationNode = { diff --git a/src/sql/workbench/services/notebook/browser/outputs/factories.ts b/src/sql/workbench/services/notebook/browser/outputs/factories.ts index 8086215dcb..bede827e13 100644 --- a/src/sql/workbench/services/notebook/browser/outputs/factories.ts +++ b/src/sql/workbench/services/notebook/browser/outputs/factories.ts @@ -3,7 +3,7 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -import * as widgets from 'sql/workbench/contrib/notebook/browser/outputs/widgets'; +import * as widgets from 'sql/workbench/services/notebook/browser/outputs/widgets'; import { ImageMimeTypes } from 'sql/workbench/services/notebook/common/contracts'; import { IRenderMime } from './renderMimeInterfaces'; diff --git a/src/sql/workbench/contrib/notebook/browser/outputs/renderers.ts b/src/sql/workbench/services/notebook/browser/outputs/renderers.ts similarity index 100% rename from src/sql/workbench/contrib/notebook/browser/outputs/renderers.ts rename to src/sql/workbench/services/notebook/browser/outputs/renderers.ts diff --git a/src/sql/workbench/contrib/notebook/browser/outputs/tableRenderers.ts b/src/sql/workbench/services/notebook/browser/outputs/tableRenderers.ts similarity index 96% rename from src/sql/workbench/contrib/notebook/browser/outputs/tableRenderers.ts rename to src/sql/workbench/services/notebook/browser/outputs/tableRenderers.ts index a91c8cc864..0decf01ecd 100644 --- a/src/sql/workbench/contrib/notebook/browser/outputs/tableRenderers.ts +++ b/src/sql/workbench/services/notebook/browser/outputs/tableRenderers.ts @@ -14,7 +14,7 @@ import { IThemeService } from 'vs/platform/theme/common/themeService'; import { MouseWheelSupport } from 'sql/base/browser/ui/table/plugins/mousewheelTableScroll.plugin'; import { AutoColumnSize } from 'sql/base/browser/ui/table/plugins/autoSizeColumns.plugin'; import { AdditionalKeyBindings } from 'sql/base/browser/ui/table/plugins/additionalKeyBindings.plugin'; -import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/contrib/query/common/resultsGrid.contribution'; +import { RESULTS_GRID_DEFAULTS } from 'sql/workbench/common/constants'; import { values } from 'vs/base/common/collections'; /** @@ -58,10 +58,10 @@ export function renderDataResource( let detailTable = new Table(tableContainer, { dataProvider: tableResultsData, columns: columnsTransformed }, { - rowHeight: RESULTS_GRID_DEFAULTS.rowHeight, - forceFitColumns: false, - defaultColumnWidth: 120 - }); + rowHeight: RESULTS_GRID_DEFAULTS.rowHeight, + forceFitColumns: false, + defaultColumnWidth: 120 + }); detailTable.registerPlugin(rowNumberColumn); detailTable.registerPlugin(new MouseWheelSupport()); detailTable.registerPlugin(new AutoColumnSize({ autoSizeOnRender: true })); diff --git a/src/sql/workbench/contrib/notebook/browser/outputs/widgets.ts b/src/sql/workbench/services/notebook/browser/outputs/widgets.ts similarity index 99% rename from src/sql/workbench/contrib/notebook/browser/outputs/widgets.ts rename to src/sql/workbench/services/notebook/browser/outputs/widgets.ts index 700cfded1e..8de5a20da6 100644 --- a/src/sql/workbench/contrib/notebook/browser/outputs/widgets.ts +++ b/src/sql/workbench/services/notebook/browser/outputs/widgets.ts @@ -6,7 +6,7 @@ import * as renderers from './renderers'; import { Deferred } from 'sql/base/common/promise'; import { ReadonlyJSONObject } from 'sql/workbench/services/notebook/common/jsonext'; -import * as tableRenderers from 'sql/workbench/contrib/notebook/browser/outputs/tableRenderers'; +import * as tableRenderers from 'sql/workbench/services/notebook/browser/outputs/tableRenderers'; import type { IRenderMime } from 'sql/workbench/services/notebook/browser/outputs/renderMimeInterfaces'; /** diff --git a/src/tsec.exemptions.json b/src/tsec.exemptions.json index 26bdc8d149..21ca7d78cc 100644 --- a/src/tsec.exemptions.json +++ b/src/tsec.exemptions.json @@ -49,16 +49,16 @@ "sql/workbench/contrib/query/browser/queryResultsEditor.ts", "sql/workbench/services/objectExplorer/browser/iconRenderer.ts", "sql/workbench/services/resourceProvider/browser/firewallRuleDialog.ts", + "sql/workbench/services/notebook/browser/outputs/renderers.ts", "sql/workbench/contrib/welcome/page/browser/welcomePage.ts", "sql/workbench/contrib/editData/browser/editDataResultsEditor.ts", "sql/workbench/contrib/jobManagement/browser/jobHistoryTree.ts", "sql/workbench/contrib/notebook/browser/outputs/mimeRenderer.component.ts", "sql/workbench/contrib/notebook/browser/outputs/markdownOutput.component.ts", - "sql/workbench/contrib/notebook/browser/outputs/renderers.ts", "vs/base/parts/tree/browser/treeDefaults.ts" ], "ban-script-content-assignments": [ - "sql/workbench/contrib/notebook/browser/outputs/renderers.ts" + "sql/workbench/services/notebook/browser/outputs/renderers.ts" ], "ban-domparser-parsefromstring": [ "sql/workbench/contrib/queryPlan/browser/planXmlParser.ts"