Commit 963a97a2 authored by Sigurd Schneider's avatar Sigurd Schneider Committed by Commit Bot

[turbolizer] Add source formatter

Bug: v8:7327
Change-Id: Id354b039977a82af8b2c6bba416cf5a1f804ca71
Reviewed-on: https://chromium-review.googlesource.com/1095257
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53637}
parent 3f8607bf
This diff is collapsed.
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"watch": "tsc --watch", "watch": "tsc --watch",
"deploy": "./deploy.sh" "deploy": "./deploy.sh",
"format": "tsfmt -r"
}, },
"author": "The V8 team", "author": "The V8 team",
"license": "MIT", "license": "MIT",
...@@ -19,6 +20,7 @@ ...@@ -19,6 +20,7 @@
"url": "https://github.com/v8/v8.git" "url": "https://github.com/v8/v8.git"
}, },
"devDependencies": { "devDependencies": {
"typescript": "^2.9.1" "typescript": "^2.9.1",
"typescript-formatter": "^7.2.2"
} }
} }
...@@ -86,7 +86,7 @@ class CodeView extends View { ...@@ -86,7 +86,7 @@ class CodeView extends View {
return this.sourcePositionToHtmlElement.get(key); return this.sourcePositionToHtmlElement.get(key);
} }
updateSelection(scrollIntoView: boolean = false) : void { updateSelection(scrollIntoView: boolean = false): void {
const mkVisible = new ViewElements(this.divNode.parentNode as HTMLElement); const mkVisible = new ViewElements(this.divNode.parentNode as HTMLElement);
for (const [sp, el] of this.sourcePositionToHtmlElement.entries()) { for (const [sp, el] of this.sourcePositionToHtmlElement.entries()) {
const isSelected = this.selection.isKeySelected(sp); const isSelected = this.selection.isKeySelected(sp);
...@@ -112,7 +112,7 @@ class CodeView extends View { ...@@ -112,7 +112,7 @@ class CodeView extends View {
return ordereList.childNodes as NodeListOf<HTMLElement>; return ordereList.childNodes as NodeListOf<HTMLElement>;
} }
onSelectLine(lineNumber:number, doClear:boolean) { onSelectLine(lineNumber: number, doClear: boolean) {
const key = anyToString(lineNumber); const key = anyToString(lineNumber);
if (doClear) { if (doClear) {
this.selectionHandler.clear(); this.selectionHandler.clear();
...@@ -182,7 +182,7 @@ class CodeView extends View { ...@@ -182,7 +182,7 @@ class CodeView extends View {
view.selectionHandler.clear(); view.selectionHandler.clear();
} }
const base:number = source.startPosition; const base: number = source.startPosition;
let current = 0; let current = 0;
const lineListDiv = this.getHtmlCodeLines(); const lineListDiv = this.getHtmlCodeLines();
let newlineAdjust = 0; let newlineAdjust = 0;
......
...@@ -89,4 +89,4 @@ class Edge { ...@@ -89,4 +89,4 @@ class Edge {
} }
const edgeToStr = (e:Edge) => e.stringID(); const edgeToStr = (e: Edge) => e.stringID();
...@@ -6,7 +6,7 @@ var DEFAULT_NODE_ROW_SEPARATION = 130 ...@@ -6,7 +6,7 @@ var DEFAULT_NODE_ROW_SEPARATION = 130
var traceLayout = false; var traceLayout = false;
function newGraphOccupation(graph){ function newGraphOccupation(graph) {
var isSlotFilled = []; var isSlotFilled = [];
var maxSlot = 0; var maxSlot = 0;
var minSlot = 0; var minSlot = 0;
...@@ -53,9 +53,9 @@ function newGraphOccupation(graph){ ...@@ -53,9 +53,9 @@ function newGraphOccupation(graph){
currentScanSlot = currentSlot + (mod ? -1 : 1) * (slotsChecked >> 1); currentScanSlot = currentSlot + (mod ? -1 : 1) * (slotsChecked >> 1);
if (!isSlotFilled[slotToIndex(currentScanSlot)]) { if (!isSlotFilled[slotToIndex(currentScanSlot)]) {
if (mod) { if (mod) {
if (direction <= 0) --widthSlotsRemainingLeft if (direction <= 0)--widthSlotsRemainingLeft
} else { } else {
if (direction >= 0) --widthSlotsRemainingRight if (direction >= 0)--widthSlotsRemainingRight
} }
if (widthSlotsRemainingLeft == 0 || if (widthSlotsRemainingLeft == 0 ||
widthSlotsRemainingRight == 0 || widthSlotsRemainingRight == 0 ||
...@@ -79,7 +79,7 @@ function newGraphOccupation(graph){ ...@@ -79,7 +79,7 @@ function newGraphOccupation(graph){
function setIndexRange(from, to, value) { function setIndexRange(from, to, value) {
if (to < from) { if (to < from) {
throw("illegal slot range"); throw ("illegal slot range");
} }
while (from <= to) { while (from <= to) {
if (from > maxSlot) { if (from > maxSlot) {
...@@ -127,7 +127,7 @@ function newGraphOccupation(graph){ ...@@ -127,7 +127,7 @@ function newGraphOccupation(graph){
} }
var occupation = { var occupation = {
occupyNodeInputs: function(node) { occupyNodeInputs: function (node) {
for (var i = 0; i < node.inputs.length; ++i) { for (var i = 0; i < node.inputs.length; ++i) {
if (node.inputs[i].isVisible()) { if (node.inputs[i].isVisible()) {
var edge = node.inputs[i]; var edge = node.inputs[i];
...@@ -144,8 +144,8 @@ function newGraphOccupation(graph){ ...@@ -144,8 +144,8 @@ function newGraphOccupation(graph){
} }
} }
}, },
occupyNode: function(node) { occupyNode: function (node) {
var getPlacementHint = function(n) { var getPlacementHint = function (n) {
var pos = 0; var pos = 0;
var direction = -1; var direction = -1;
var outputEdges = 0; var outputEdges = 0;
...@@ -201,14 +201,14 @@ function newGraphOccupation(graph){ ...@@ -201,14 +201,14 @@ function newGraphOccupation(graph){
return slotToLeftPosition(firstSlot + slotWidth / 2) - (width / 2); return slotToLeftPosition(firstSlot + slotWidth / 2) - (width / 2);
} }
}, },
clearOccupiedNodes: function() { clearOccupiedNodes: function () {
nodeOccupation.forEach(function(o) { nodeOccupation.forEach(function (o) {
clearSlotRange(o[0], o[1]); clearSlotRange(o[0], o[1]);
}); });
nodeOccupation = []; nodeOccupation = [];
}, },
clearNodeOutputs: function(source) { clearNodeOutputs: function (source) {
source.outputs.forEach(function(edge) { source.outputs.forEach(function (edge) {
if (edge.isVisible()) { if (edge.isVisible()) {
var target = edge.target; var target = edge.target;
for (var i = 0; i < target.inputs.length; ++i) { for (var i = 0; i < target.inputs.length; ++i) {
...@@ -222,7 +222,7 @@ function newGraphOccupation(graph){ ...@@ -222,7 +222,7 @@ function newGraphOccupation(graph){
} }
}); });
}, },
print: function() { print: function () {
var s = ""; var s = "";
for (var currentSlot = -40; currentSlot < 40; ++currentSlot) { for (var currentSlot = -40; currentSlot < 40; ++currentSlot) {
if (currentSlot != 0) { if (currentSlot != 0) {
...@@ -251,11 +251,11 @@ function layoutNodeGraph(graph) { ...@@ -251,11 +251,11 @@ function layoutNodeGraph(graph) {
// basis for bottom-up DFS to determine rank and node placement. // basis for bottom-up DFS to determine rank and node placement.
var endNodesHasNoOutputs = []; var endNodesHasNoOutputs = [];
var startNodesHasNoInputs = []; var startNodesHasNoInputs = [];
graph.nodes.forEach(function(n, i){ graph.nodes.forEach(function (n, i) {
endNodesHasNoOutputs[n.id] = true; endNodesHasNoOutputs[n.id] = true;
startNodesHasNoInputs[n.id] = true; startNodesHasNoInputs[n.id] = true;
}); });
graph.edges.forEach(function(e, i){ graph.edges.forEach(function (e, i) {
endNodesHasNoOutputs[e.source.id] = false; endNodesHasNoOutputs[e.source.id] = false;
startNodesHasNoInputs[e.target.id] = false; startNodesHasNoInputs[e.target.id] = false;
}); });
...@@ -265,7 +265,7 @@ function layoutNodeGraph(graph) { ...@@ -265,7 +265,7 @@ function layoutNodeGraph(graph) {
var startNodes = []; var startNodes = [];
var visited = []; var visited = [];
var rank = []; var rank = [];
graph.nodes.forEach(function(n, i){ graph.nodes.forEach(function (n, i) {
if (endNodesHasNoOutputs[n.id]) { if (endNodesHasNoOutputs[n.id]) {
endNodes.push(n); endNodes.push(n);
} }
...@@ -364,13 +364,13 @@ function layoutNodeGraph(graph) { ...@@ -364,13 +364,13 @@ function layoutNodeGraph(graph) {
} }
startNodes.forEach(dfsRankOrder); startNodes.forEach(dfsRankOrder);
endNodes.forEach(function(n) { endNodes.forEach(function (n) {
n.rank = maxRank + 1; n.rank = maxRank + 1;
}); });
var rankSets = []; var rankSets = [];
// Collect sets for each rank. // Collect sets for each rank.
graph.nodes.forEach(function(n, i){ graph.nodes.forEach(function (n, i) {
n.y = n.rank * (DEFAULT_NODE_ROW_SEPARATION + graph.getNodeHeight(n) + n.y = n.rank * (DEFAULT_NODE_ROW_SEPARATION + graph.getNodeHeight(n) +
2 * DEFAULT_NODE_BUBBLE_RADIUS); 2 * DEFAULT_NODE_BUBBLE_RADIUS);
if (n.visible) { if (n.visible) {
...@@ -388,7 +388,7 @@ function layoutNodeGraph(graph) { ...@@ -388,7 +388,7 @@ function layoutNodeGraph(graph) {
var occupation = newGraphOccupation(graph); var occupation = newGraphOccupation(graph);
var rankCount = 0; var rankCount = 0;
rankSets.reverse().forEach(function(rankSet) { rankSets.reverse().forEach(function (rankSet) {
for (var i = 0; i < rankSet.length; ++i) { for (var i = 0; i < rankSet.length; ++i) {
occupation.clearNodeOutputs(rankSet[i]); occupation.clearNodeOutputs(rankSet[i]);
...@@ -400,7 +400,7 @@ function layoutNodeGraph(graph) { ...@@ -400,7 +400,7 @@ function layoutNodeGraph(graph) {
} }
var placedCount = 0; var placedCount = 0;
rankSet = rankSet.sort(function(a,b) { rankSet = rankSet.sort(function (a, b) {
return a.visitOrderWithinRank < b.visitOrderWithinRank; return a.visitOrderWithinRank < b.visitOrderWithinRank;
}); });
for (var i = 0; i < rankSet.length; ++i) { for (var i = 0; i < rankSet.length; ++i) {
...@@ -495,8 +495,8 @@ function redetermineGraphBoundingBox(graph) { ...@@ -495,8 +495,8 @@ function redetermineGraphBoundingBox(graph) {
graph.height = height; graph.height = height;
const extent = [ const extent = [
[graph.minGraphX-width/2, graph.minGraphY-height/2], [graph.minGraphX - width / 2, graph.minGraphY - height / 2],
[graph.maxGraphX+width/2, graph.maxGraphY+height/2] [graph.maxGraphX + width / 2, graph.maxGraphY + height / 2]
]; ];
graph.panZoom.translateExtent(extent); graph.panZoom.translateExtent(extent);
graph.minScale(); graph.minScale();
......
...@@ -92,7 +92,7 @@ class GraphView extends View implements PhaseView { ...@@ -92,7 +92,7 @@ class GraphView extends View implements PhaseView {
locations.push(node.sourcePosition); locations.push(node.sourcePosition);
} }
if (node.origin && node.origin.bytecodePosition) { if (node.origin && node.origin.bytecodePosition) {
locations.push({bytecodePosition: node.origin.bytecodePosition}); locations.push({ bytecodePosition: node.origin.bytecodePosition });
} }
} }
graph.state.selection.select(nodes, selected); graph.state.selection.select(nodes, selected);
......
...@@ -43,7 +43,7 @@ class GraphMultiView extends View { ...@@ -43,7 +43,7 @@ class GraphMultiView extends View {
optionElement.text = phase.name; optionElement.text = phase.name;
view.selectMenu.add(optionElement); view.selectMenu.add(optionElement);
}); });
this.selectMenu.onchange = function (this:HTMLSelectElement) { this.selectMenu.onchange = function (this: HTMLSelectElement) {
window.sessionStorage.setItem("lastSelectedPhase", this.selectedIndex.toString()); window.sessionStorage.setItem("lastSelectedPhase", this.selectedIndex.toString());
view.displayPhase(view.sourceResolver.getPhase(this.selectedIndex)); view.displayPhase(view.sourceResolver.getPhase(this.selectedIndex));
} }
...@@ -58,7 +58,7 @@ class GraphMultiView extends View { ...@@ -58,7 +58,7 @@ class GraphMultiView extends View {
this.displayPhase(this.sourceResolver.getPhase(initialPhaseIndex)); this.displayPhase(this.sourceResolver.getPhase(initialPhaseIndex));
} }
initializeContent() {} initializeContent() { }
displayPhase(phase) { displayPhase(phase) {
if (phase.type == 'graph') { if (phase.type == 'graph') {
......
...@@ -41,7 +41,7 @@ class GNode { ...@@ -41,7 +41,7 @@ class GNode {
visible: boolean; visible: boolean;
rank: number; rank: number;
opinfo: string; opinfo: string;
labelbbox: {width: number, height: number}; labelbbox: { width: number, height: number };
isControl() { isControl() {
return this.control; return this.control;
...@@ -177,4 +177,4 @@ class GNode { ...@@ -177,4 +177,4 @@ class GNode {
} }
}; };
const nodeToStr = (n:GNode) => "N" + n.id; const nodeToStr = (n: GNode) => "N" + n.id;
...@@ -42,7 +42,7 @@ class ScheduleView extends TextView implements PhaseView { ...@@ -42,7 +42,7 @@ class ScheduleView extends TextView implements PhaseView {
elementForBlock(block) { elementForBlock(block) {
const view = this; const view = this;
function createElement(tag:string, cls: string|Array<string>, content?:string) { function createElement(tag: string, cls: string | Array<string>, content?: string) {
const el = document.createElement(tag); const el = document.createElement(tag);
if (isIterable(cls)) { if (isIterable(cls)) {
for (const c of cls) el.classList.add(c); for (const c of cls) el.classList.add(c);
...@@ -162,5 +162,5 @@ class ScheduleView extends TextView implements PhaseView { ...@@ -162,5 +162,5 @@ class ScheduleView extends TextView implements PhaseView {
this.selectionHandler.select(select, true); this.selectionHandler.select(select, true);
} }
onresize() {} onresize() { }
} }
...@@ -3,22 +3,22 @@ ...@@ -3,22 +3,22 @@
// found in the LICENSE file. // found in the LICENSE file.
interface SelectionHandler { interface SelectionHandler {
clear() : void; clear(): void;
select(nodeIds:any, selected:any) : void; select(nodeIds: any, selected: any): void;
brokeredClear(): void; brokeredClear(): void;
brokeredSourcePositionSelect(sourcePositions:any, selected:any): void; brokeredSourcePositionSelect(sourcePositions: any, selected: any): void;
}; };
interface NodeSelectionHandler { interface NodeSelectionHandler {
clear() : void; clear(): void;
select(nodeIds:any, selected:any) : void; select(nodeIds: any, selected: any): void;
brokeredClear(): void; brokeredClear(): void;
brokeredNodeSelect(nodeIds:any, selected:any): void; brokeredNodeSelect(nodeIds: any, selected: any): void;
}; };
interface BlockSelectionHandler { interface BlockSelectionHandler {
clear() : void; clear(): void;
select(nodeIds:any, selected:any) : void; select(nodeIds: any, selected: any): void;
brokeredClear(): void; brokeredClear(): void;
brokeredBlockSelect(blockIds:any, selected:any): void; brokeredBlockSelect(blockIds: any, selected: any): void;
}; };
...@@ -4,18 +4,18 @@ ...@@ -4,18 +4,18 @@
class MySelection { class MySelection {
selection: any; selection: any;
stringKey: (o:any) => string; stringKey: (o: any) => string;
constructor(stringKeyFnc) { constructor(stringKeyFnc) {
this.selection = new Map(); this.selection = new Map();
this.stringKey = stringKeyFnc; this.stringKey = stringKeyFnc;
} }
isEmpty() : boolean { isEmpty(): boolean {
return this.selection.size == 0; return this.selection.size == 0;
} }
clear() : void { clear(): void {
this.selection = new Map(); this.selection = new Map();
} }
...@@ -38,7 +38,7 @@ class MySelection { ...@@ -38,7 +38,7 @@ class MySelection {
return this.selection.has(this.stringKey(i)); return this.selection.has(this.stringKey(i));
} }
isKeySelected(key:string): boolean { isKeySelected(key: string): boolean {
return this.selection.has(key); return this.selection.has(key);
} }
......
...@@ -286,7 +286,7 @@ class SourceResolver { ...@@ -286,7 +286,7 @@ class SourceResolver {
for (const node of phase.data.nodes) { for (const node of phase.data.nodes) {
if (node.origin != undefined && if (node.origin != undefined &&
node.origin.bytecodePosition != undefined) { node.origin.bytecodePosition != undefined) {
const position = {bytecodePosition: node.origin.bytecodePosition}; const position = { bytecodePosition: node.origin.bytecodePosition };
this.nodePositionMap[node.id] = position; this.nodePositionMap[node.id] = position;
let key = sourcePositionToStringKey(position); let key = sourcePositionToStringKey(position);
if (!this.positionToNodes.has(key)) { if (!this.positionToNodes.has(key)) {
...@@ -329,7 +329,7 @@ class SourceResolver { ...@@ -329,7 +329,7 @@ class SourceResolver {
this.phases.forEach(f); this.phases.forEach(f);
} }
addAnyPositionToLine(lineNumber:number|String, sourcePosition:AnyPosition) { addAnyPositionToLine(lineNumber: number | String, sourcePosition: AnyPosition) {
const lineNumberString = anyToString(lineNumber); const lineNumberString = anyToString(lineNumber);
if (!this.lineToSourcePositions.has(lineNumberString)) { if (!this.lineToSourcePositions.has(lineNumberString)) {
this.lineToSourcePositions.set(lineNumberString, []); this.lineToSourcePositions.set(lineNumberString, []);
...@@ -338,14 +338,14 @@ class SourceResolver { ...@@ -338,14 +338,14 @@ class SourceResolver {
if (!A.includes(sourcePosition)) A.push(sourcePosition); if (!A.includes(sourcePosition)) A.push(sourcePosition);
} }
setSourceLineToBytecodePosition(sourceLineToBytecodePosition:Array<number>|undefined) { setSourceLineToBytecodePosition(sourceLineToBytecodePosition: Array<number> | undefined) {
if (!sourceLineToBytecodePosition) return; if (!sourceLineToBytecodePosition) return;
sourceLineToBytecodePosition.forEach((pos, i) => { sourceLineToBytecodePosition.forEach((pos, i) => {
this.addAnyPositionToLine(i, {bytecodePosition: pos}); this.addAnyPositionToLine(i, { bytecodePosition: pos });
}); });
} }
linetoSourcePositions(lineNumber:number|String) { linetoSourcePositions(lineNumber: number | String) {
const positions = this.lineToSourcePositions.get(anyToString(lineNumber)); const positions = this.lineToSourcePositions.get(anyToString(lineNumber));
if (positions === undefined) return []; if (positions === undefined) return [];
return positions; return positions;
...@@ -359,11 +359,13 @@ class SourceResolver { ...@@ -359,11 +359,13 @@ class SourceResolver {
const nodeIdStrings = nodeIdsString.split(','); const nodeIdStrings = nodeIdsString.split(',');
inputs = nodeIdStrings.map((n) => Number.parseInt(n, 10)); inputs = nodeIdStrings.map((n) => Number.parseInt(n, 10));
} }
const node = {id: Number.parseInt(match.groups.id, 10), const node = {
id: Number.parseInt(match.groups.id, 10),
label: match.groups.label, label: match.groups.label,
inputs: inputs}; inputs: inputs
};
if (match.groups.blocks) { if (match.groups.blocks) {
const nodeIdsString = match.groups.blocks.replace(/\s/g, '').replace(/B/g,''); const nodeIdsString = match.groups.blocks.replace(/\s/g, '').replace(/B/g, '');
const nodeIdStrings = nodeIdsString.split(','); const nodeIdStrings = nodeIdsString.split(',');
const successors = nodeIdStrings.map((n) => Number.parseInt(n, 10)); const successors = nodeIdStrings.map((n) => Number.parseInt(n, 10));
state.currentBlock.succ = successors; state.currentBlock.succ = successors;
...@@ -378,11 +380,13 @@ class SourceResolver { ...@@ -378,11 +380,13 @@ class SourceResolver {
const blockIdStrings = blockIdsString.split(','); const blockIdStrings = blockIdsString.split(',');
predecessors = blockIdStrings.map((n) => Number.parseInt(n, 10)); predecessors = blockIdStrings.map((n) => Number.parseInt(n, 10));
} }
const block = {id: Number.parseInt(match.groups.id, 10), const block = {
id: Number.parseInt(match.groups.id, 10),
isDeferred: match.groups.deferred != undefined, isDeferred: match.groups.deferred != undefined,
pred: predecessors.sort(), pred: predecessors.sort(),
succ: [], succ: [],
nodes: []}; nodes: []
};
state.blocks[block.id] = block; state.blocks[block.id] = block;
state.currentBlock = block; state.currentBlock = block;
} }
...@@ -392,7 +396,7 @@ class SourceResolver { ...@@ -392,7 +396,7 @@ class SourceResolver {
const rules = [ const rules = [
{ {
lineRegexps: lineRegexps:
[ /^\s*(?<id>\d+):\ (?<label>.*)\((?<args>.*)\)$/, [/^\s*(?<id>\d+):\ (?<label>.*)\((?<args>.*)\)$/,
/^\s*(?<id>\d+):\ (?<label>.*)\((?<args>.*)\)\ ->\ (?<blocks>.*)$/, /^\s*(?<id>\d+):\ (?<label>.*)\((?<args>.*)\)\ ->\ (?<blocks>.*)$/,
/^\s*(?<id>\d+):\ (?<label>.*)$/ /^\s*(?<id>\d+):\ (?<label>.*)$/
], ],
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"use strict"; "use strict";
function anyToString(x:any): string { function anyToString(x: any): string {
return "" + x; return "" + x;
} }
...@@ -118,7 +118,7 @@ abstract class TextView extends View { ...@@ -118,7 +118,7 @@ abstract class TextView extends View {
broker.addSourcePositionHandler(sourcePositionSelectionHandler); broker.addSourcePositionHandler(sourcePositionSelectionHandler);
} }
addHtmlElementForNodeId(anyNodeId:any, htmlElement: HTMLElement) { addHtmlElementForNodeId(anyNodeId: any, htmlElement: HTMLElement) {
const nodeId = anyToString(anyNodeId); const nodeId = anyToString(anyNodeId);
if (!this.nodeIdToHtmlElementsMap.has(nodeId)) { if (!this.nodeIdToHtmlElementsMap.has(nodeId)) {
this.nodeIdToHtmlElementsMap.set(nodeId, []); this.nodeIdToHtmlElementsMap.set(nodeId, []);
......
...@@ -104,7 +104,7 @@ function partial(f, ...arguments1) { ...@@ -104,7 +104,7 @@ function partial(f, ...arguments1) {
} }
} }
function isIterable(obj:any): obj is Iterable<any> { function isIterable(obj: any): obj is Iterable<any> {
return obj != null && obj != undefined return obj != null && obj != undefined
&& typeof obj != 'string' && typeof obj[Symbol.iterator] === 'function'; && typeof obj != 'string' && typeof obj[Symbol.iterator] === 'function';
} }
...@@ -34,5 +34,5 @@ abstract class View { ...@@ -34,5 +34,5 @@ abstract class View {
interface PhaseView { interface PhaseView {
onresize(); onresize();
searchInputAction(searchInput: HTMLInputElement, e:Event); searchInputAction(searchInput: HTMLInputElement, e: Event);
} }
{
"tabSize": 2,
"indentSize": 2,
"convertTabsToSpaces": true,
"insertSpaceAfterCommaDelimiter": true,
"insertSpaceAfterSemicolonInForStatements": true,
"insertSpaceBeforeAndAfterBinaryOperators": true,
"insertSpaceAfterKeywordsInControlFlowStatements": true,
"insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,
"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
"insertSpaceBeforeFunctionParenthesis": false,
"placeOpenBraceOnNewLineForFunctions": false,
"placeOpenBraceOnNewLineForControlBlocks": false
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment