markdown-table-prettify
Version:
Transforms markdown tables to be more readable.
87 lines (86 loc) • 5.58 kB
JavaScript
"use strict";
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
to[j] = from[i];
return to;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDocumentPrettyfierCommand = exports.getDocumentPrettyfier = exports.getDocumentRangePrettyfier = exports.getSupportLanguageIds = void 0;
var vscode = require("vscode");
var configSizeLimitCheker_1 = require("../prettyfiers/sizeLimit/configSizeLimitCheker");
var tableDocumentPrettyfier_1 = require("./tableDocumentPrettyfier");
var tableDocumentPrettyfierCommand_1 = require("./tableDocumentPrettyfierCommand");
var tableFinder_1 = require("../tableFinding/tableFinder");
var tableDocumentRangePrettyfier_1 = require("./tableDocumentRangePrettyfier");
var consoleLogger_1 = require("../diagnostics/consoleLogger");
var vsWindowLogger_1 = require("../diagnostics/vsWindowLogger");
var tableFactory_1 = require("../modelFactory/tableFactory");
var alignmentFactory_1 = require("../modelFactory/alignmentFactory");
var tableValidator_1 = require("../modelFactory/tableValidator");
var contentPadCalculator_1 = require("../padCalculation/contentPadCalculator");
var tableViewModelFactory_1 = require("../viewModelFactories/tableViewModelFactory");
var rowViewModelFactory_1 = require("../viewModelFactories/rowViewModelFactory");
var borderTransformer_1 = require("../modelFactory/transformers/borderTransformer");
var trimmerTransformer_1 = require("../modelFactory/transformers/trimmerTransformer");
var tableIndentationDetector_1 = require("../modelFactory/tableIndentationDetector");
var selectionInterpreter_1 = require("../modelFactory/selectionInterpreter");
var padCalculatorSelector_1 = require("../padCalculation/padCalculatorSelector");
var alignmentMarking_1 = require("../viewModelFactories/alignmentMarking");
var multiTablePrettyfier_1 = require("../prettyfiers/multiTablePrettyfier");
var singleTablePrettyfier_1 = require("../prettyfiers/singleTablePrettyfier");
var tableStringWriter_1 = require("../writers/tableStringWriter");
var valuePaddingProvider_1 = require("../writers/valuePaddingProvider");
function getSupportLanguageIds() {
return __spreadArray(["markdown"], __read(getConfigurationValue("extendedLanguages", [])));
}
exports.getSupportLanguageIds = getSupportLanguageIds;
function getDocumentRangePrettyfier() {
return new tableDocumentRangePrettyfier_1.TableDocumentRangePrettyfier(getMultiTablePrettyfier());
}
exports.getDocumentRangePrettyfier = getDocumentRangePrettyfier;
function getDocumentPrettyfier() {
return new tableDocumentPrettyfier_1.TableDocumentPrettyfier(getMultiTablePrettyfier());
}
exports.getDocumentPrettyfier = getDocumentPrettyfier;
function getDocumentPrettyfierCommand() {
return new tableDocumentPrettyfierCommand_1.TableDocumentPrettyfierCommand(getMultiTablePrettyfier());
}
exports.getDocumentPrettyfierCommand = getDocumentPrettyfierCommand;
function getMultiTablePrettyfier() {
var loggers = getLoggers();
var sizeLimitCheker = getSizeLimitChecker(loggers);
var columnPadding = getConfigurationValue("columnPadding", 0);
return new multiTablePrettyfier_1.MultiTablePrettyfier(new tableFinder_1.TableFinder(new tableValidator_1.TableValidator(new selectionInterpreter_1.SelectionInterpreter(true))), getSingleTablePrettyfier(loggers, sizeLimitCheker, columnPadding), sizeLimitCheker);
}
function getSingleTablePrettyfier(loggers, sizeLimitCheker, columnPadding) {
return new singleTablePrettyfier_1.SingleTablePrettyfier(new tableFactory_1.TableFactory(new alignmentFactory_1.AlignmentFactory(), new selectionInterpreter_1.SelectionInterpreter(false), new trimmerTransformer_1.TrimmerTransformer(new borderTransformer_1.BorderTransformer(null)), new tableIndentationDetector_1.FairTableIndentationDetector()), new tableValidator_1.TableValidator(new selectionInterpreter_1.SelectionInterpreter(false)), new tableViewModelFactory_1.TableViewModelFactory(new rowViewModelFactory_1.RowViewModelFactory(new contentPadCalculator_1.ContentPadCalculator(new padCalculatorSelector_1.PadCalculatorSelector(), " "), new alignmentMarking_1.AlignmentMarkerStrategy(":"))), new tableStringWriter_1.TableStringWriter(new valuePaddingProvider_1.ValuePaddingProvider(columnPadding)), loggers, sizeLimitCheker);
}
function getLoggers() {
var canShowWindowMessages = getConfigurationValue("showWindowMessages", true);
return __spreadArray(__spreadArray([], __read((canShowWindowMessages ? [new vsWindowLogger_1.VsWindowLogger()] : []))), [
new consoleLogger_1.ConsoleLogger()
]);
}
function getSizeLimitChecker(loggers) {
var maxTextLength = getConfigurationValue("maxTextLength", 1000000);
return new configSizeLimitCheker_1.ConfigSizeLimitChecker(loggers, maxTextLength);
}
function getConfigurationValue(key, defaultValue) {
return vscode.workspace.getConfiguration("markdownTablePrettify").get(key, defaultValue);
}