Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
3815bb15
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3815bb15
编写于
1月 27, 2019
作者:
P
Pine Wu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update service and adopt HTML provider interface
上级
1b575168
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
49 addition
and
43 deletion
+49
-43
extensions/html-language-features/.vscode/settings.json
extensions/html-language-features/.vscode/settings.json
+4
-1
extensions/html-language-features/server/package.json
extensions/html-language-features/server/package.json
+2
-2
extensions/html-language-features/server/src/customData.ts
extensions/html-language-features/server/src/customData.ts
+29
-0
extensions/html-language-features/server/src/htmlServerMain.ts
...sions/html-language-features/server/src/htmlServerMain.ts
+3
-28
extensions/html-language-features/server/src/modes/languageModes.ts
.../html-language-features/server/src/modes/languageModes.ts
+3
-4
extensions/html-language-features/server/yarn.lock
extensions/html-language-features/server/yarn.lock
+8
-8
未找到文件。
extensions/html-language-features/.vscode/settings.json
浏览文件 @
3815bb15
{
"editor.insertSpaces"
:
false
"editor.insertSpaces"
:
false
,
"prettier.semi"
:
true
,
"prettier.singleQuote"
:
true
,
"prettier.printWidth"
:
120
,
}
\ No newline at end of file
extensions/html-language-features/server/package.json
浏览文件 @
3815bb15
...
...
@@ -9,8 +9,8 @@
},
"main"
:
"./out/htmlServerMain"
,
"dependencies"
:
{
"vscode-css-languageservice"
:
"^3.0.13-next.
6
"
,
"vscode-html-languageservice"
:
"^2.1.11-next.
4
"
,
"vscode-css-languageservice"
:
"^3.0.13-next.
8
"
,
"vscode-html-languageservice"
:
"^2.1.11-next.
6
"
,
"vscode-languageserver"
:
"^5.1.0"
,
"vscode-languageserver-types"
:
"^3.13.0"
,
"vscode-nls"
:
"^4.0.0"
,
...
...
extensions/html-language-features/server/src/
utils/tagDefinitions
.ts
→
extensions/html-language-features/server/src/
customData
.ts
浏览文件 @
3815bb15
...
...
@@ -3,8 +3,27 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
HTMLData
}
from
'
vscode-html-languageservice
'
;
import
{
IHTMLDataProvider
,
HTMLDataProvider
}
from
'
vscode-html-languageservice
'
;
import
*
as
fs
from
'
fs
'
;
export
function
parseHTMLData
(
source
:
string
):
HTMLData
{
return
JSON
.
parse
(
source
);
export
function
getDataProviders
(
dataPaths
?:
string
[]):
IHTMLDataProvider
[]
{
if
(
!
dataPaths
)
{
return
[];
}
const
providers
:
IHTMLDataProvider
[]
=
[];
dataPaths
.
forEach
((
path
,
i
)
=>
{
try
{
if
(
fs
.
existsSync
(
path
))
{
const
htmlData
=
JSON
.
parse
(
fs
.
readFileSync
(
path
,
'
utf-8
'
));
providers
.
push
(
new
HTMLDataProvider
(
`customProvider
${
i
}
`
,
htmlData
));
}
}
catch
(
err
)
{
console
.
log
(
`Failed to laod tag from
${
path
}
`
);
}
});
return
providers
;
}
\ No newline at end of file
extensions/html-language-features/server/src/htmlServerMain.ts
浏览文件 @
3815bb15
...
...
@@ -11,7 +11,6 @@ import {
}
from
'
vscode-languageserver
'
;
import
{
TextDocument
,
Diagnostic
,
DocumentLink
,
SymbolInformation
}
from
'
vscode-languageserver-types
'
;
import
{
getLanguageModes
,
LanguageModes
,
Settings
}
from
'
./modes/languageModes
'
;
import
*
as
fs
from
'
fs
'
;
import
{
format
}
from
'
./modes/formatting
'
;
import
{
pushAll
}
from
'
./utils/arrays
'
;
...
...
@@ -20,8 +19,7 @@ import uri from 'vscode-uri';
import
{
formatError
,
runSafe
,
runSafeAsync
}
from
'
./utils/runner
'
;
import
{
getFoldingRanges
}
from
'
./modes/htmlFolding
'
;
import
{
parseHTMLData
}
from
'
./utils/tagDefinitions
'
;
import
{
HTMLData
}
from
'
vscode-html-languageservice
'
;
import
{
getDataProviders
}
from
'
./customData
'
;
namespace
TagCloseRequest
{
export
const
type
:
RequestType
<
TextDocumentPositionParams
,
string
|
null
,
any
,
any
>
=
new
RequestType
(
'
html/tag
'
);
...
...
@@ -92,37 +90,14 @@ connection.onInitialize((params: InitializeParams): InitializeResult => {
}
const
dataPaths
:
string
[]
=
params
.
initializationOptions
.
dataPaths
;
let
allHtmlData
:
HTMLData
=
{
tags
:
[],
globalAttributes
:
[],
valueSetMap
:
{}
};
if
(
dataPaths
)
{
dataPaths
.
forEach
(
path
=>
{
try
{
if
(
fs
.
existsSync
(
path
))
{
const
htmlData
=
parseHTMLData
(
fs
.
readFileSync
(
path
,
'
utf-8
'
));
if
(
htmlData
.
tags
)
{
allHtmlData
.
tags
=
allHtmlData
.
tags
!
.
concat
(
htmlData
.
tags
);
}
if
(
htmlData
.
globalAttributes
)
{
allHtmlData
.
globalAttributes
=
allHtmlData
.
globalAttributes
!
.
concat
(
htmlData
.
globalAttributes
);
}
}
}
catch
(
err
)
{
console
.
log
(
`Failed to laod tag from
${
path
}
`
);
}
});
}
const
providers
=
getDataProviders
(
dataPaths
);
const
workspace
=
{
get
settings
()
{
return
globalSettings
;
},
get
folders
()
{
return
workspaceFolders
;
}
};
languageModes
=
getLanguageModes
(
initializationOptions
?
initializationOptions
.
embeddedLanguages
:
{
css
:
true
,
javascript
:
true
},
workspace
,
allHtmlData
);
languageModes
=
getLanguageModes
(
initializationOptions
?
initializationOptions
.
embeddedLanguages
:
{
css
:
true
,
javascript
:
true
},
workspace
,
providers
);
documents
.
onDidClose
(
e
=>
{
languageModes
.
onDocumentRemoved
(
e
.
document
);
...
...
extensions/html-language-features/server/src/modes/languageModes.ts
浏览文件 @
3815bb15
...
...
@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
getLanguageService
as
getHTMLLanguageService
,
DocumentContext
,
HTMLData
}
from
'
vscode-html-languageservice
'
;
import
{
getLanguageService
as
getHTMLLanguageService
,
DocumentContext
,
IHTMLDataProvider
}
from
'
vscode-html-languageservice
'
;
import
{
CompletionItem
,
Location
,
SignatureHelp
,
Definition
,
TextEdit
,
TextDocument
,
Diagnostic
,
DocumentLink
,
Range
,
Hover
,
DocumentHighlight
,
CompletionList
,
Position
,
FormattingOptions
,
SymbolInformation
,
FoldingRange
...
...
@@ -66,9 +66,8 @@ export interface LanguageModeRange extends Range {
attributeValue
?:
boolean
;
}
export
function
getLanguageModes
(
supportedLanguages
:
{
[
languageId
:
string
]:
boolean
;
},
workspace
:
Workspace
,
customData
?:
HTMLData
):
LanguageModes
{
const
customDataCollections
=
customData
?
[
customData
]
:
[];
const
htmlLanguageService
=
getHTMLLanguageService
({
customDataCollections
});
export
function
getLanguageModes
(
supportedLanguages
:
{
[
languageId
:
string
]:
boolean
;
},
workspace
:
Workspace
,
customDataProviders
?:
IHTMLDataProvider
[]):
LanguageModes
{
const
htmlLanguageService
=
getHTMLLanguageService
({
customDataProviders
});
let
documentRegions
=
getLanguageModelCache
<
HTMLDocumentRegions
>
(
10
,
60
,
document
=>
getDocumentRegions
(
htmlLanguageService
,
document
));
...
...
extensions/html-language-features/server/yarn.lock
浏览文件 @
3815bb15
...
...
@@ -229,18 +229,18 @@ supports-color@5.4.0:
dependencies:
has-flag "^3.0.0"
vscode-css-languageservice@^3.0.13-next.
6
:
version "3.0.13-next.
6
"
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.13-next.
6.tgz#0329ea1da29ca84d1821cd32ee10bca0ee4c50cd
"
integrity sha512-
wC8zaFWHNnqIaOT4LXByy3NyTl916uHxGy3U3cpV7Gw7F8ENylSGM2RAO+l7NohIbP0WZlet441HEwSbb+bZbQ
==
vscode-css-languageservice@^3.0.13-next.
8
:
version "3.0.13-next.
8
"
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.13-next.
8.tgz#3e019c9166914fcbd8b71530ff32b438698206fa
"
integrity sha512-
YjoIMCvZSegs7UOogehQjrfNybBL3MDVN2jx/uxFFw0VKFGAiyZkjfQiipEg36jbKL4LKHiBUoutoHYMF2PGfw
==
dependencies:
vscode-languageserver-types "^3.13.0"
vscode-nls "^4.0.0"
vscode-html-languageservice@^2.1.11-next.
4
:
version "2.1.11-next.
4
"
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-2.1.11-next.
4.tgz#bcfe68ca17300d7f845889be3cb947af95dab409
"
integrity sha512-
dQOcdqLhMZuAWhSoe/AqqvVo2klkWpCHwp14dWvgrAfUyKM7l0e0kk9lbf8kt1Kn2J9ukDTySIcOkbHaVSwcHA
==
vscode-html-languageservice@^2.1.11-next.
6
:
version "2.1.11-next.
6
"
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-2.1.11-next.
6.tgz#66eb7a10d84ac91d5985b45cfa704ce05fe3e638
"
integrity sha512-
BCShNFqflm1XpjMJrxAz4tWSAdA1cqJi2XrI3/eHzqcHzw4kO/l3ApaZPdci77CAcOdWKyDmmzSau0UwR+CkYQ
==
dependencies:
vscode-languageserver-types "^3.13.0"
vscode-nls "^4.0.0"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录