提交 38645311 编写于 作者: M Martin Aeschlimann

Merge pull request #804 from Tyriar/remove_dead_html_code

[html] Remove dead code in html.ts
......@@ -24,6 +24,7 @@ import {OnEnterSupport} from 'vs/editor/common/modes/supports/onEnter';
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
import {IThreadService } from 'vs/platform/thread/common/thread';
import * as htmlTokenTypes from 'vs/languages/html/common/htmlTokenTypes';
import {EMPTY_ELEMENTS} from 'vs/languages/html/common/htmlEmptyTagsShared';
export { htmlTokenTypes }; // export to be used by Razor. We are the main module, so Razor should get ot from use.
......@@ -39,15 +40,8 @@ export enum States {
AttributeValue
}
// list of empty elements - for performance reasons we won't open a bracket for them
var emptyElements:string[] = ['area', 'base', 'basefont', 'br', 'col', 'command', 'embed', 'frame', 'hr', 'img', 'input', 'isindex', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
function isEmptyElement(e: string) : boolean {
return arrays.binarySearch(emptyElements, e,(s1: string, s2: string) => s1.localeCompare(s2)) >= 0;
}
// list of element that embedd other content
var tagsEmbeddingContent:any = ['script', 'style'];
// list of elements that embed other content
var tagsEmbeddingContent:string[] = ['script', 'style'];
......@@ -308,7 +302,7 @@ export class HTMLMode<W extends htmlWorker.HTMLWorker> extends AbstractMode<W> i
brackets: [],
regexBrackets:[
{ tokenType: htmlTokenTypes.getTag('$1'),
open: /<(?!(?:area|base|basefont|br|col|command|embed|frame|hr|img|input|link|meta|param|source|track|wbr))(\w[\w\d]*)([^\/>]*(?!\/)>)[^<]*$/i,
open: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, 'i'),
closeComplete: '</$1>',
close: /<\/(\w[\w\d]*)\s*>$/i }],
caseInsensitive:true,
......
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import arrays = require('vs/base/common/arrays');
export const EMPTY_ELEMENTS:string[] = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr'];
export function isEmptyElement(e: string) : boolean {
return arrays.binarySearch(EMPTY_ELEMENTS, e,(s1: string, s2: string) => s1.localeCompare(s2)) >= 0;
}
......@@ -10,12 +10,7 @@
import strings = require('vs/base/common/strings');
import arrays = require('vs/base/common/arrays');
import nls = require('vs/nls');
var emptyElements:string[] = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr'];
export function isEmptyElement(e: string) : boolean {
return arrays.binarySearch(emptyElements, e,(s1: string, s2: string) => s1.localeCompare(s2)) >= 0;
}
import {isEmptyElement} from 'vs/languages/html/common/htmlEmptyTagsShared';
export interface IHTMLTagProvider {
collectTags(collector: (tag:string, label:string) => void): void;
......
......@@ -21,6 +21,7 @@ import {IMarkerService} from 'vs/platform/markers/common/markers';
import {IResourceService} from 'vs/editor/common/services/resourceService';
import {getScanner, IHTMLScanner} from 'vs/languages/html/common/htmlScanner';
import {isTag, DELIM_END, DELIM_START, DELIM_ASSIGN, ATTRIB_NAME, ATTRIB_VALUE} from 'vs/languages/html/common/htmlTokenTypes';
import {isEmptyElement} from 'vs/languages/html/common/htmlEmptyTagsShared';
enum LinkDetectionState {
LOOKING_FOR_HREF_OR_SRC = 1,
......@@ -175,7 +176,7 @@ export class HTMLWorker extends AbstractModeWorker {
scanner.scanBack();
if (scanner.getTokenType() === DELIM_END) {
closedTags[tag] = (closedTags[tag] || 0) + 1;
} else if (!htmlTags.isEmptyElement(tag)) {
} else if (!isEmptyElement(tag)) {
if (closedTags[tag]) {
closedTags[tag]--;
} else {
......@@ -404,7 +405,7 @@ export class HTMLWorker extends AbstractModeWorker {
}
private findMatchingBracket(tagname: string, scanner: IHTMLScanner) : EditorCommon.IRange {
if (htmlTags.isEmptyElement(tagname)) {
if (isEmptyElement(tagname)) {
return null;
}
var tagCount = 0;
......@@ -707,4 +708,3 @@ export class HTMLWorker extends AbstractModeWorker {
function isWhiteSpace(s:string) : boolean {
return /^\s*$/.test(s);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册