Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
73f64b93
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,发现更多精彩内容 >>
提交
73f64b93
编写于
4月 23, 2018
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
first cut of _proposed_ api for hierarchy of document symbols, #34968
上级
2bf25467
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
60 addition
and
1 deletion
+60
-1
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+18
-0
src/vs/workbench/api/node/extHost.api.impl.ts
src/vs/workbench/api/node/extHost.api.impl.ts
+6
-0
src/vs/workbench/api/node/extHostLanguageFeatures.ts
src/vs/workbench/api/node/extHostLanguageFeatures.ts
+4
-1
src/vs/workbench/api/node/extHostTypes.ts
src/vs/workbench/api/node/extHostTypes.ts
+32
-0
未找到文件。
src/vs/vscode.proposed.d.ts
浏览文件 @
73f64b93
...
...
@@ -738,4 +738,22 @@ declare module 'vscode' {
}
//#endregion
//#region Joh: hierarchical document symbols, https://github.com/Microsoft/vscode/issues/34968
export
class
HierarchicalSymbolInformation
{
name
:
string
;
kind
:
SymbolKind
;
location
:
Location
;
range
:
Range
;
children
:
HierarchicalSymbolInformation
[];
constructor
(
name
:
string
,
kind
:
SymbolKind
,
location
:
Location
,
range
:
Range
);
}
export
interface
DocumentSymbolProvider
{
provideDocumentSymbols
(
document
:
TextDocument
,
token
:
CancellationToken
):
ProviderResult
<
HierarchicalSymbolInformation
|
SymbolInformation
[]
>
;
}
//#endregion
}
src/vs/workbench/api/node/extHost.api.impl.ts
浏览文件 @
73f64b93
...
...
@@ -666,6 +666,12 @@ export function createApiFactory(
SourceBreakpoint
:
extHostTypes
.
SourceBreakpoint
,
StatusBarAlignment
:
extHostTypes
.
StatusBarAlignment
,
SymbolInformation
:
extHostTypes
.
SymbolInformation
,
HierarchicalSymbolInformation
:
class
extends
extHostTypes
.
HierarchicalSymbolInformation
{
constructor
(
name
,
kind
,
keyof
,
range
)
{
checkProposedApiEnabled
(
extension
);
super
(
name
,
kind
,
keyof
,
range
);
}
},
SymbolKind
:
extHostTypes
.
SymbolKind
,
SourceControlInputBoxValidationType
:
extHostTypes
.
SourceControlInputBoxValidationType
,
TextDocumentSaveReason
:
extHostTypes
.
TextDocumentSaveReason
,
...
...
src/vs/workbench/api/node/extHostLanguageFeatures.ts
浏览文件 @
73f64b93
...
...
@@ -9,7 +9,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
import
{
mixin
}
from
'
vs/base/common/objects
'
;
import
*
as
vscode
from
'
vscode
'
;
import
*
as
TypeConverters
from
'
vs/workbench/api/node/extHostTypeConverters
'
;
import
{
Range
,
Disposable
,
CompletionList
,
SnippetString
,
CodeActionKind
}
from
'
vs/workbench/api/node/extHostTypes
'
;
import
{
Range
,
Disposable
,
CompletionList
,
SnippetString
,
CodeActionKind
,
HierarchicalSymbolInformation
}
from
'
vs/workbench/api/node/extHostTypes
'
;
import
{
ISingleEditOperation
}
from
'
vs/editor/common/model
'
;
import
*
as
modes
from
'
vs/editor/common/modes
'
;
import
{
ExtHostHeapService
}
from
'
vs/workbench/api/node/extHostHeapService
'
;
...
...
@@ -39,6 +39,9 @@ class OutlineAdapter {
provideDocumentSymbols
(
resource
:
URI
):
TPromise
<
SymbolInformationDto
[]
>
{
let
doc
=
this
.
_documents
.
getDocumentData
(
resource
).
document
;
return
asWinJsPromise
(
token
=>
this
.
_provider
.
provideDocumentSymbols
(
doc
,
token
)).
then
(
value
=>
{
if
(
value
instanceof
HierarchicalSymbolInformation
)
{
value
=
HierarchicalSymbolInformation
.
toFlatSymbolInformation
(
value
);
}
if
(
Array
.
isArray
(
value
))
{
return
value
.
map
(
symbol
=>
IdObject
.
mixin
(
TypeConverters
.
fromSymbolInformation
(
symbol
)));
}
...
...
src/vs/workbench/api/node/extHostTypes.ts
浏览文件 @
73f64b93
...
...
@@ -876,6 +876,38 @@ export class SymbolInformation {
}
}
export
class
HierarchicalSymbolInformation
{
name
:
string
;
location
:
Location
;
kind
:
SymbolKind
;
range
:
Range
;
children
:
HierarchicalSymbolInformation
[];
constructor
(
name
:
string
,
kind
:
SymbolKind
,
location
:
Location
,
range
:
Range
)
{
this
.
name
=
name
;
this
.
kind
=
kind
;
this
.
location
=
location
;
this
.
range
=
range
;
this
.
children
=
[];
}
static
toFlatSymbolInformation
(
info
:
HierarchicalSymbolInformation
):
SymbolInformation
[]
{
let
result
:
SymbolInformation
[]
=
[];
HierarchicalSymbolInformation
.
_toFlatSymbolInformation
(
info
,
undefined
,
result
);
return
result
;
}
private
static
_toFlatSymbolInformation
(
info
:
HierarchicalSymbolInformation
,
containerName
:
string
,
bucket
:
SymbolInformation
[]):
void
{
bucket
.
push
(
new
SymbolInformation
(
info
.
name
,
info
.
kind
,
containerName
,
new
Location
(
info
.
location
.
uri
,
info
.
range
)));
if
(
Array
.
isArray
(
info
.
children
))
{
for
(
const
child
of
info
.
children
)
{
HierarchicalSymbolInformation
.
_toFlatSymbolInformation
(
child
,
info
.
name
,
bucket
);
}
}
}
}
export
class
CodeAction
{
title
:
string
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录