Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
21c22840
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,发现更多精彩内容 >>
提交
21c22840
编写于
7月 25, 2018
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[html] adopt lsp (folding, colors)
上级
8699a313
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
56 addition
and
127 deletion
+56
-127
extensions/html-language-features/client/src/htmlMain.ts
extensions/html-language-features/client/src/htmlMain.ts
+2
-52
extensions/html-language-features/package.json
extensions/html-language-features/package.json
+1
-2
extensions/html-language-features/server/package.json
extensions/html-language-features/server/package.json
+5
-6
extensions/html-language-features/server/src/htmlServerMain.ts
...sions/html-language-features/server/src/htmlServerMain.ts
+2
-3
extensions/html-language-features/server/src/modes/htmlFolding.ts
...ns/html-language-features/server/src/modes/htmlFolding.ts
+1
-1
extensions/html-language-features/server/src/modes/htmlMode.ts
...sions/html-language-features/server/src/modes/htmlMode.ts
+1
-3
extensions/html-language-features/server/src/modes/javascriptMode.ts
...html-language-features/server/src/modes/javascriptMode.ts
+5
-2
extensions/html-language-features/server/src/modes/languageModes.ts
.../html-language-features/server/src/modes/languageModes.ts
+1
-2
extensions/html-language-features/server/yarn.lock
extensions/html-language-features/server/yarn.lock
+27
-38
extensions/html-language-features/yarn.lock
extensions/html-language-features/yarn.lock
+11
-18
未找到文件。
extensions/html-language-features/client/src/htmlMain.ts
浏览文件 @
21c22840
...
...
@@ -8,14 +8,12 @@ import * as path from 'path';
import
*
as
nls
from
'
vscode-nls
'
;
const
localize
=
nls
.
loadMessageBundle
();
import
{
languages
,
ExtensionContext
,
IndentAction
,
Position
,
TextDocument
,
Range
,
CompletionItem
,
CompletionItemKind
,
SnippetString
,
FoldingRangeKind
,
FoldingRange
,
FoldingContext
}
from
'
vscode
'
;
import
{
LanguageClient
,
LanguageClientOptions
,
ServerOptions
,
TransportKind
,
RequestType
,
TextDocumentPositionParams
,
Disposable
,
CancellationToken
}
from
'
vscode-languageclient
'
;
import
{
languages
,
ExtensionContext
,
IndentAction
,
Position
,
TextDocument
,
Range
,
CompletionItem
,
CompletionItemKind
,
SnippetString
}
from
'
vscode
'
;
import
{
LanguageClient
,
LanguageClientOptions
,
ServerOptions
,
TransportKind
,
RequestType
,
TextDocumentPositionParams
}
from
'
vscode-languageclient
'
;
import
{
EMPTY_ELEMENTS
}
from
'
./htmlEmptyTagsShared
'
;
import
{
activateTagClosing
}
from
'
./tagClosing
'
;
import
TelemetryReporter
from
'
vscode-extension-telemetry
'
;
import
{
FoldingRangeRequest
,
FoldingRangeRequestParam
,
FoldingRangeClientCapabilities
,
FoldingRangeKind
as
LSFoldingRangeKind
}
from
'
vscode-languageserver-protocol-foldingprovider
'
;
namespace
TagCloseRequest
{
export
const
type
:
RequestType
<
TextDocumentPositionParams
,
string
,
any
,
any
>
=
new
RequestType
(
'
html/tag
'
);
}
...
...
@@ -64,21 +62,6 @@ export function activate(context: ExtensionContext) {
// Create the language client and start the client.
let
client
=
new
LanguageClient
(
'
html
'
,
localize
(
'
htmlserver.name
'
,
'
HTML Language Server
'
),
serverOptions
,
clientOptions
);
client
.
registerProposedFeatures
();
client
.
registerFeature
({
fillClientCapabilities
(
capabilities
:
FoldingRangeClientCapabilities
):
void
{
let
textDocumentCap
=
capabilities
.
textDocument
;
if
(
!
textDocumentCap
)
{
textDocumentCap
=
capabilities
.
textDocument
=
{};
}
textDocumentCap
.
foldingRange
=
{
dynamicRegistration
:
false
,
rangeLimit
:
5000
,
lineFoldingOnly
:
true
};
},
initialize
(
capabilities
,
documentSelector
):
void
{
}
});
let
disposable
=
client
.
start
();
toDispose
.
push
(
disposable
);
...
...
@@ -96,7 +79,6 @@ export function activate(context: ExtensionContext) {
}
});
toDispose
.
push
(
disposable
);
toDispose
.
push
(
initFoldingProvider
());
});
languages
.
setLanguageConfiguration
(
'
html
'
,
{
...
...
@@ -172,38 +154,6 @@ export function activate(context: ExtensionContext) {
return
null
;
}
});
function
initFoldingProvider
():
Disposable
{
function
getKind
(
kind
:
string
|
undefined
):
FoldingRangeKind
|
undefined
{
if
(
kind
)
{
switch
(
kind
)
{
case
LSFoldingRangeKind
.
Comment
:
return
FoldingRangeKind
.
Comment
;
case
LSFoldingRangeKind
.
Imports
:
return
FoldingRangeKind
.
Imports
;
case
LSFoldingRangeKind
.
Region
:
return
FoldingRangeKind
.
Region
;
}
}
return
void
0
;
}
return
languages
.
registerFoldingRangeProvider
(
'
html
'
,
{
provideFoldingRanges
(
document
:
TextDocument
,
context
:
FoldingContext
,
token
:
CancellationToken
)
{
const
param
:
FoldingRangeRequestParam
=
{
textDocument
:
client
.
code2ProtocolConverter
.
asTextDocumentIdentifier
(
document
)
};
return
client
.
sendRequest
(
FoldingRangeRequest
.
type
,
param
,
token
).
then
(
ranges
=>
{
if
(
Array
.
isArray
(
ranges
))
{
return
ranges
.
map
(
r
=>
new
FoldingRange
(
r
.
startLine
,
r
.
endLine
,
getKind
(
r
.
kind
)));
}
return
null
;
},
error
=>
{
client
.
logFailedRequest
(
FoldingRangeRequest
.
type
,
error
);
return
null
;
});
}
});
}
}
function
getPackageInfo
(
context
:
ExtensionContext
):
IPackageInfo
|
null
{
...
...
extensions/html-language-features/package.json
浏览文件 @
21c22840
...
...
@@ -174,8 +174,7 @@
},
"dependencies"
:
{
"vscode-extension-telemetry"
:
"0.0.17"
,
"vscode-languageclient"
:
"^4.1.4"
,
"vscode-languageserver-protocol-foldingprovider"
:
"^2.0.1"
,
"vscode-languageclient"
:
"^4.4.0"
,
"vscode-nls"
:
"^3.2.4"
},
"devDependencies"
:
{
...
...
extensions/html-language-features/server/package.json
浏览文件 @
21c22840
...
...
@@ -8,13 +8,12 @@
"node"
:
"*"
},
"dependencies"
:
{
"vscode-css-languageservice"
:
"^3.0.9-next.20"
,
"vscode-html-languageservice"
:
"^2.1.3-next.5"
,
"vscode-languageserver"
:
"^4.1.3"
,
"vscode-languageserver-protocol-foldingprovider"
:
"^2.0.1"
,
"vscode-languageserver-types"
:
"^3.7.2"
,
"vscode-css-languageservice"
:
"^3.0.9"
,
"vscode-html-languageservice"
:
"^2.1.3"
,
"vscode-languageserver"
:
"^4.4.0"
,
"vscode-languageserver-types"
:
"^3.10.0"
,
"vscode-nls"
:
"^3.2.4"
,
"vscode-uri"
:
"^1.0.
3
"
"vscode-uri"
:
"^1.0.
5
"
},
"devDependencies"
:
{
"@types/mocha"
:
"2.2.33"
,
...
...
extensions/html-language-features/server/src/htmlServerMain.ts
浏览文件 @
21c22840
...
...
@@ -19,7 +19,6 @@ import { getDocumentContext } from './utils/documentContext';
import
uri
from
'
vscode-uri
'
;
import
{
formatError
,
runSafe
,
runSafeAsync
}
from
'
./utils/runner
'
;
import
{
FoldingRangeRequest
,
FoldingRangeServerCapabilities
}
from
'
vscode-languageserver-protocol-foldingprovider
'
;
import
{
getFoldingRanges
}
from
'
./modes/htmlFolding
'
;
namespace
TagCloseRequest
{
...
...
@@ -119,7 +118,7 @@ connection.onInitialize((params: InitializeParams): InitializeResult => {
scopedSettingsSupport
=
getClientCapability
(
'
workspace.configuration
'
,
false
);
workspaceFoldersSupport
=
getClientCapability
(
'
workspace.workspaceFolders
'
,
false
);
foldingRangeLimit
=
getClientCapability
(
'
textDocument.foldingRange.rangeLimit
'
,
Number
.
MAX_VALUE
);
const
capabilities
:
ServerCapabilities
&
FoldingRangeServerCapabilities
=
{
const
capabilities
:
ServerCapabilities
=
{
// Tell the client that the server works in FULL text document sync mode
textDocumentSync
:
documents
.
syncKind
,
completionProvider
:
clientSnippetSupport
?
{
resolveProvider
:
true
,
triggerCharacters
:
[
'
.
'
,
'
:
'
,
'
<
'
,
'
"
'
,
'
=
'
,
'
/
'
]
}
:
undefined
,
...
...
@@ -441,7 +440,7 @@ connection.onRequest(TagCloseRequest.type, (params, token) => {
},
null
,
`Error while computing tag close actions for
${
params
.
textDocument
.
uri
}
`
,
token
);
});
connection
.
on
Request
(
FoldingRangeRequest
.
type
,
(
params
,
token
)
=>
{
connection
.
on
FoldingRanges
(
(
params
,
token
)
=>
{
return
runSafe
(()
=>
{
const
document
=
documents
.
get
(
params
.
textDocument
.
uri
);
if
(
document
)
{
...
...
extensions/html-language-features/server/src/modes/htmlFolding.ts
浏览文件 @
21c22840
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
import
{
TextDocument
,
CancellationToken
,
Position
,
Range
}
from
'
vscode-languageserver
'
;
import
{
FoldingRange
}
from
'
vscode-languageserver-
protocol-foldingprovider
'
;
import
{
FoldingRange
}
from
'
vscode-languageserver-
types
'
;
import
{
LanguageModes
}
from
'
./languageModes
'
;
export
function
getFoldingRanges
(
languageModes
:
LanguageModes
,
document
:
TextDocument
,
maxRanges
:
number
|
undefined
,
cancellationToken
:
CancellationToken
|
null
):
FoldingRange
[]
{
...
...
extensions/html-language-features/server/src/modes/htmlMode.ts
浏览文件 @
21c22840
...
...
@@ -6,10 +6,8 @@
import
{
getLanguageModelCache
}
from
'
../languageModelCache
'
;
import
{
LanguageService
as
HTMLLanguageService
,
HTMLDocument
,
DocumentContext
,
FormattingOptions
,
HTMLFormatConfiguration
}
from
'
vscode-html-languageservice
'
;
import
{
TextDocument
,
Position
,
Range
,
CompletionItem
}
from
'
vscode-languageserver-types
'
;
import
{
TextDocument
,
Position
,
Range
,
CompletionItem
,
FoldingRange
}
from
'
vscode-languageserver-types
'
;
import
{
LanguageMode
,
Workspace
}
from
'
./languageModes
'
;
import
{
FoldingRange
}
from
'
vscode-languageserver-protocol-foldingprovider
'
;
import
{
getPathCompletionParticipant
}
from
'
./pathCompletion
'
;
export
function
getHTMLMode
(
htmlLanguageService
:
HTMLLanguageService
,
workspace
:
Workspace
):
LanguageMode
{
...
...
extensions/html-language-features/server/src/modes/javascriptMode.ts
浏览文件 @
21c22840
...
...
@@ -5,14 +5,17 @@
'
use strict
'
;
import
{
LanguageModelCache
,
getLanguageModelCache
}
from
'
../languageModelCache
'
;
import
{
SymbolInformation
,
SymbolKind
,
CompletionItem
,
Location
,
SignatureHelp
,
SignatureInformation
,
ParameterInformation
,
Definition
,
TextEdit
,
TextDocument
,
Diagnostic
,
DiagnosticSeverity
,
Range
,
CompletionItemKind
,
Hover
,
MarkedString
,
DocumentHighlight
,
DocumentHighlightKind
,
CompletionList
,
Position
,
FormattingOptions
}
from
'
vscode-languageserver-types
'
;
import
{
SymbolInformation
,
SymbolKind
,
CompletionItem
,
Location
,
SignatureHelp
,
SignatureInformation
,
ParameterInformation
,
Definition
,
TextEdit
,
TextDocument
,
Diagnostic
,
DiagnosticSeverity
,
Range
,
CompletionItemKind
,
Hover
,
MarkedString
,
DocumentHighlight
,
DocumentHighlightKind
,
CompletionList
,
Position
,
FormattingOptions
,
FoldingRange
,
FoldingRangeKind
}
from
'
vscode-languageserver-types
'
;
import
{
LanguageMode
,
Settings
,
Workspace
}
from
'
./languageModes
'
;
import
{
getWordAtText
,
startsWith
,
isWhitespaceOnly
,
repeat
}
from
'
../utils/strings
'
;
import
{
HTMLDocumentRegions
}
from
'
./embeddedSupport
'
;
import
*
as
ts
from
'
typescript
'
;
import
{
join
}
from
'
path
'
;
import
{
FoldingRange
,
FoldingRangeKind
}
from
'
vscode-languageserver-protocol-foldingprovider
'
;
const
FILE_NAME
=
'
vscode://javascript/1
'
;
// the same 'file' is used for all contents
const
JQUERY_D_TS
=
join
(
__dirname
,
'
../../lib/jquery.d.ts
'
);
...
...
extensions/html-language-features/server/src/modes/languageModes.ts
浏览文件 @
21c22840
...
...
@@ -7,10 +7,9 @@
import
{
getLanguageService
as
getHTMLLanguageService
,
DocumentContext
}
from
'
vscode-html-languageservice
'
;
import
{
CompletionItem
,
Location
,
SignatureHelp
,
Definition
,
TextEdit
,
TextDocument
,
Diagnostic
,
DocumentLink
,
Range
,
Hover
,
DocumentHighlight
,
CompletionList
,
Position
,
FormattingOptions
,
SymbolInformation
Hover
,
DocumentHighlight
,
CompletionList
,
Position
,
FormattingOptions
,
SymbolInformation
,
FoldingRange
}
from
'
vscode-languageserver-types
'
;
import
{
ColorInformation
,
ColorPresentation
,
Color
,
WorkspaceFolder
}
from
'
vscode-languageserver
'
;
import
{
FoldingRange
}
from
'
vscode-languageserver-protocol-foldingprovider
'
;
import
{
getLanguageModelCache
,
LanguageModelCache
}
from
'
../languageModelCache
'
;
import
{
getDocumentRegions
,
HTMLDocumentRegions
}
from
'
./embeddedSupport
'
;
...
...
extensions/html-language-features/server/yarn.lock
浏览文件 @
21c22840
...
...
@@ -194,66 +194,55 @@ supports-color@5.4.0:
dependencies:
has-flag "^3.0.0"
vscode-css-languageservice@^3.0.9
-next.20
:
version "3.0.9
-next.20
"
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.9
-next.20.tgz#8229aee66aa877929af5d2fd81a21731b415c92
e"
vscode-css-languageservice@^3.0.9:
version "3.0.9"
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.9
.tgz#770471350120c5bcf6918632a125638fc0ece3b
e"
dependencies:
vscode-languageserver-types "^3.
7.2
"
vscode-nls "^3.2.
2
"
vscode-languageserver-types "^3.
10.0
"
vscode-nls "^3.2.
4
"
vscode-html-languageservice@^2.1.3
-next.5
:
version "2.1.3
-next.5
"
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-2.1.3
-next.5.tgz#cfbf4ffed96845ad13999d572ce0b5c2aeee84af
"
vscode-html-languageservice@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-2.1.3
.tgz#c999c39e37adc632be8003a5e82075cf75dbb9bc
"
dependencies:
vscode-languageserver-types "^3.
7.2
"
vscode-nls "^3.2.
2
"
vscode-uri "^1.0.
3
"
vscode-languageserver-types "^3.
10.0
"
vscode-nls "^3.2.
4
"
vscode-uri "^1.0.
5
"
vscode-jsonrpc@^3.6.2:
version "3.6.2"
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8"
vscode-languageserver-protocol-foldingprovider@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-2.0.1.tgz#051d0d9e58d1b79dc4681acd48f21797f5515bfd"
dependencies:
vscode-languageserver-protocol "^3.7.2"
vscode-languageserver-types "^3.7.2"
vscode-languageserver-protocol@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.7.2.tgz#df58621c032139010888b6a9ddc969423f9ba9d6"
vscode-languageserver-protocol@^3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc"
dependencies:
vscode-jsonrpc "^3.6.2"
vscode-languageserver-types "^3.
7.2
"
vscode-languageserver-types "^3.
10.0
"
vscode-languageserver-types@^3.
7.2
:
version "3.
7.2
"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.
7.2.tgz#aad8846f8e3e27962648554de5a8417e358f34eb
"
vscode-languageserver-types@^3.
10.0
:
version "3.
10.0
"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.
10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389
"
vscode-languageserver@^4.
1.3
:
version "4.
1.3
"
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.
1.3.tgz#937d37c955b6b9c2409388413cd6f54d1eb9fe7d
"
vscode-languageserver@^4.
4.0
:
version "4.
4.0
"
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.
4.0.tgz#b6e8b37a739ccb629d92f3635f0099d191c856fa
"
dependencies:
vscode-languageserver-protocol "^3.7.2"
vscode-uri "^1.0.1"
vscode-nls@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.2.tgz#3817eca5b985c2393de325197cf4e15eb2aa5350"
vscode-languageserver-protocol "^3.10.0"
vscode-uri "^1.0.3"
vscode-nls@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
vscode-uri@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.1.tgz#11a86befeac3c4aa3ec08623651a3c81a6d0bbc8"
vscode-uri@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.3.tgz#631bdbf716dccab0e65291a8dc25c23232085a52"
vscode-uri@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.5.tgz#3b899a8ef71c37f3054d79bdbdda31c7bf36f20d"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
...
...
extensions/html-language-features/yarn.lock
浏览文件 @
21c22840
...
...
@@ -38,29 +38,22 @@ vscode-jsonrpc@^3.6.2:
version "3.6.2"
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8"
vscode-languageclient@^4.
1.4
:
version "4.
1.4
"
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.
1.4.tgz#fff1a6bca4714835dca7fce35bc4ce81442fdf2c
"
vscode-languageclient@^4.
4.0
:
version "4.
4.0
"
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.
4.0.tgz#b05868f6477b6f0c9910b24daae4f3e8c4b65902
"
dependencies:
vscode-languageserver-protocol "^3.
7.2
"
vscode-languageserver-protocol "^3.
10.0
"
vscode-languageserver-protocol-foldingprovider@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-2.0.1.tgz#051d0d9e58d1b79dc4681acd48f21797f5515bfd"
dependencies:
vscode-languageserver-protocol "^3.7.2"
vscode-languageserver-types "^3.7.2"
vscode-languageserver-protocol@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.7.2.tgz#df58621c032139010888b6a9ddc969423f9ba9d6"
vscode-languageserver-protocol@^3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc"
dependencies:
vscode-jsonrpc "^3.6.2"
vscode-languageserver-types "^3.
7.2
"
vscode-languageserver-types "^3.
10.0
"
vscode-languageserver-types@^3.
7.2
:
version "3.
7.2
"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.
7.2.tgz#aad8846f8e3e27962648554de5a8417e358f34eb
"
vscode-languageserver-types@^3.
10.0
:
version "3.
10.0
"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.
10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389
"
vscode-nls@^3.2.4:
version "3.2.4"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录