Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b520c8f1
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b520c8f1
编写于
11月 20, 2017
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[html] Request textDocument/rangeFormatting failed when pasting inside script tags. Fixes #35698
上级
93706d88
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
19 addition
and
16 deletion
+19
-16
extensions/html/server/src/htmlServerMain.ts
extensions/html/server/src/htmlServerMain.ts
+1
-1
extensions/html/server/src/languageModelCache.ts
extensions/html/server/src/languageModelCache.ts
+1
-1
extensions/html/server/src/modes/cssMode.ts
extensions/html/server/src/modes/cssMode.ts
+1
-1
extensions/html/server/src/modes/embeddedSupport.ts
extensions/html/server/src/modes/embeddedSupport.ts
+5
-5
extensions/html/server/src/modes/formatting.ts
extensions/html/server/src/modes/formatting.ts
+6
-4
extensions/html/server/src/modes/htmlMode.ts
extensions/html/server/src/modes/htmlMode.ts
+1
-0
extensions/html/server/src/modes/languageModes.ts
extensions/html/server/src/modes/languageModes.ts
+4
-4
未找到文件。
extensions/html/server/src/htmlServerMain.ts
浏览文件 @
b520c8f1
...
...
@@ -23,7 +23,7 @@ import * as nls from 'vscode-nls';
nls
.
config
(
process
.
env
[
'
VSCODE_NLS_CONFIG
'
]);
namespace
TagCloseRequest
{
export
const
type
:
RequestType
<
TextDocumentPositionParams
,
string
,
any
,
any
>
=
new
RequestType
(
'
html/tag
'
);
export
const
type
:
RequestType
<
TextDocumentPositionParams
,
string
|
null
,
any
,
any
>
=
new
RequestType
(
'
html/tag
'
);
}
// Create a connection for the server
...
...
extensions/html/server/src/languageModelCache.ts
浏览文件 @
b520c8f1
...
...
@@ -16,7 +16,7 @@ export function getLanguageModelCache<T>(maxEntries: number, cleanupIntervalTime
let
languageModels
:
{
[
uri
:
string
]:
{
version
:
number
,
languageId
:
string
,
cTime
:
number
,
languageModel
:
T
}
}
=
{};
let
nModels
=
0
;
let
cleanupInterval
=
void
0
;
let
cleanupInterval
:
NodeJS
.
Timer
|
undefined
=
void
0
;
if
(
cleanupIntervalTimeInSec
>
0
)
{
cleanupInterval
=
setInterval
(()
=>
{
let
cutoffTime
=
Date
.
now
()
-
cleanupIntervalTimeInSec
*
1000
;
...
...
extensions/html/server/src/modes/cssMode.ts
浏览文件 @
b520c8f1
...
...
@@ -23,7 +23,7 @@ export function getCSSMode(documentRegions: LanguageModelCache<HTMLDocumentRegio
configure
(
options
:
any
)
{
cssLanguageService
.
configure
(
options
&&
options
.
css
);
},
doValidation
(
document
:
TextDocument
,
settings
:
Settings
)
{
doValidation
(
document
:
TextDocument
,
settings
?
:
Settings
)
{
let
embedded
=
embeddedCSSDocuments
.
get
(
document
);
return
cssLanguageService
.
doValidation
(
embedded
,
cssStylesheets
.
get
(
embedded
),
settings
&&
settings
.
css
);
},
...
...
extensions/html/server/src/modes/embeddedSupport.ts
浏览文件 @
b520c8f1
...
...
@@ -8,21 +8,21 @@
import
{
TextDocument
,
Position
,
LanguageService
,
TokenType
,
Range
}
from
'
vscode-html-languageservice
'
;
export
interface
LanguageRange
extends
Range
{
languageId
:
string
;
languageId
:
string
|
undefined
;
attributeValue
?:
boolean
;
}
export
interface
HTMLDocumentRegions
{
getEmbeddedDocument
(
languageId
:
string
,
ignoreAttributeValues
?:
boolean
):
TextDocument
;
getLanguageRanges
(
range
:
Range
):
LanguageRange
[];
getLanguageAtPosition
(
position
:
Position
):
string
;
getLanguageAtPosition
(
position
:
Position
):
string
|
undefined
;
getLanguagesInDocument
():
string
[];
getImportedScripts
():
string
[];
}
export
var
CSS_STYLE_RULE
=
'
__
'
;
interface
EmbeddedRegion
{
languageId
:
string
;
start
:
number
;
end
:
number
;
attributeValue
?:
boolean
;
}
interface
EmbeddedRegion
{
languageId
:
string
|
undefined
;
start
:
number
;
end
:
number
;
attributeValue
?:
boolean
;
}
export
function
getDocumentRegions
(
languageService
:
LanguageService
,
document
:
TextDocument
):
HTMLDocumentRegions
{
...
...
@@ -45,7 +45,7 @@ export function getDocumentRegions(languageService: LanguageService, document: T
regions
.
push
({
languageId
:
'
css
'
,
start
:
scanner
.
getTokenOffset
(),
end
:
scanner
.
getTokenEnd
()
});
break
;
case
TokenType
.
Script
:
regions
.
push
({
languageId
:
languageIdFromType
!
,
start
:
scanner
.
getTokenOffset
(),
end
:
scanner
.
getTokenEnd
()
});
regions
.
push
({
languageId
:
languageIdFromType
,
start
:
scanner
.
getTokenOffset
(),
end
:
scanner
.
getTokenEnd
()
});
break
;
case
TokenType
.
AttributeName
:
lastAttributeName
=
scanner
.
getTokenText
();
...
...
@@ -146,7 +146,7 @@ function getLanguagesInDocument(document: TextDocument, regions: EmbeddedRegion[
return
result
;
}
function
getLanguageAtPosition
(
document
:
TextDocument
,
regions
:
EmbeddedRegion
[],
position
:
Position
):
string
{
function
getLanguageAtPosition
(
document
:
TextDocument
,
regions
:
EmbeddedRegion
[],
position
:
Position
):
string
|
undefined
{
let
offset
=
document
.
offsetAt
(
position
);
for
(
let
region
of
regions
)
{
if
(
region
.
start
<=
offset
)
{
...
...
extensions/html/server/src/modes/formatting.ts
浏览文件 @
b520c8f1
...
...
@@ -6,11 +6,11 @@
import
{
applyEdits
}
from
'
../utils/edits
'
;
import
{
TextDocument
,
Range
,
TextEdit
,
FormattingOptions
,
Position
}
from
'
vscode-languageserver-types
'
;
import
{
LanguageModes
,
Settings
}
from
'
./languageModes
'
;
import
{
LanguageModes
,
Settings
,
LanguageModeRange
}
from
'
./languageModes
'
;
import
{
pushAll
}
from
'
../utils/arrays
'
;
import
{
isEOL
}
from
'
../utils/strings
'
;
export
function
format
(
languageModes
:
LanguageModes
,
document
:
TextDocument
,
formatRange
:
Range
,
formattingOptions
:
FormattingOptions
,
settings
:
Settings
,
enabledModes
:
{
[
mode
:
string
]:
boolean
})
{
export
function
format
(
languageModes
:
LanguageModes
,
document
:
TextDocument
,
formatRange
:
Range
,
formattingOptions
:
FormattingOptions
,
settings
:
Settings
|
undefined
,
enabledModes
:
{
[
mode
:
string
]:
boolean
})
{
let
result
:
TextEdit
[]
=
[];
let
endPos
=
formatRange
.
end
;
...
...
@@ -37,9 +37,11 @@ export function format(languageModes: LanguageModes, document: TextDocument, for
let
allRanges
=
languageModes
.
getModesInRange
(
document
,
formatRange
);
let
i
=
0
;
let
startPos
=
formatRange
.
start
;
while
(
i
<
allRanges
.
length
&&
allRanges
[
i
].
mode
.
getId
()
!==
'
html
'
)
{
let
isHTML
=
(
range
:
LanguageModeRange
)
=>
range
.
mode
&&
range
.
mode
.
getId
()
===
'
html
'
;
while
(
i
<
allRanges
.
length
&&
!
isHTML
(
allRanges
[
i
]))
{
let
range
=
allRanges
[
i
];
if
(
!
range
.
attributeValue
&&
range
.
mode
.
format
)
{
if
(
!
range
.
attributeValue
&&
range
.
mode
&&
range
.
mode
.
format
)
{
let
edits
=
range
.
mode
.
format
(
document
,
Range
.
create
(
startPos
,
range
.
end
),
formattingOptions
,
settings
);
pushAll
(
result
,
edits
);
}
...
...
extensions/html/server/src/modes/htmlMode.ts
浏览文件 @
b520c8f1
...
...
@@ -60,6 +60,7 @@ export function getHTMLMode(htmlLanguageService: HTMLLanguageService): LanguageM
if
(
offset
>
0
&&
text
.
charAt
(
offset
-
1
).
match
(
/
[
>
\/]
/g
))
{
return
htmlLanguageService
.
doTagComplete
(
document
,
position
,
htmlDocuments
.
get
(
document
));
}
return
null
;
},
onDocumentRemoved
(
document
:
TextDocument
)
{
htmlDocuments
.
onDocumentRemoved
(
document
);
...
...
extensions/html/server/src/modes/languageModes.ts
浏览文件 @
b520c8f1
...
...
@@ -43,7 +43,7 @@ export interface LanguageMode {
findDocumentLinks
?:
(
document
:
TextDocument
,
documentContext
:
DocumentContext
)
=>
DocumentLink
[];
findDefinition
?:
(
document
:
TextDocument
,
position
:
Position
)
=>
Definition
|
null
;
findReferences
?:
(
document
:
TextDocument
,
position
:
Position
)
=>
Location
[];
format
?:
(
document
:
TextDocument
,
range
:
Range
,
options
:
FormattingOptions
,
settings
:
Settings
)
=>
TextEdit
[];
format
?:
(
document
:
TextDocument
,
range
:
Range
,
options
:
FormattingOptions
,
settings
?
:
Settings
)
=>
TextEdit
[];
findDocumentColors
?:
(
document
:
TextDocument
)
=>
ColorInformation
[];
getColorPresentations
?:
(
document
:
TextDocument
,
color
:
Color
,
range
:
Range
)
=>
ColorPresentation
[];
doAutoClose
?:
(
document
:
TextDocument
,
position
:
Position
)
=>
string
|
null
;
...
...
@@ -62,7 +62,7 @@ export interface LanguageModes {
}
export
interface
LanguageModeRange
extends
Range
{
mode
:
LanguageMode
;
mode
:
LanguageMode
|
undefined
;
attributeValue
?:
boolean
;
}
...
...
@@ -92,10 +92,10 @@ export function getLanguageModes(supportedLanguages: { [languageId: string]: boo
},
getModesInRange
(
document
:
TextDocument
,
range
:
Range
):
LanguageModeRange
[]
{
return
documentRegions
.
get
(
document
).
getLanguageRanges
(
range
).
map
(
r
=>
{
return
{
return
<
LanguageModeRange
>
{
start
:
r
.
start
,
end
:
r
.
end
,
mode
:
modes
[
r
.
languageId
],
mode
:
r
.
languageId
&&
modes
[
r
.
languageId
],
attributeValue
:
r
.
attributeValue
};
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录