Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
a6e747b7
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,发现更多精彩内容 >>
提交
a6e747b7
编写于
6月 11, 2020
作者:
J
Jackson Kearl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add triggerSearch and focusResults search editor args
Closes #97823
上级
1d03c052
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
24 addition
and
13 deletion
+24
-13
src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts
...contrib/searchEditor/browser/searchEditor.contribution.ts
+5
-2
src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts
...vs/workbench/contrib/searchEditor/browser/searchEditor.ts
+4
-1
src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts
...bench/contrib/searchEditor/browser/searchEditorActions.ts
+15
-10
未找到文件。
src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts
浏览文件 @
a6e747b7
...
...
@@ -213,6 +213,7 @@ CommandsRegistry.registerCommand(
//#region Actions
const
category
=
localize
(
'
search
'
,
"
Search Editor
"
);
export
type
OpenSearchEditorArgs
=
Partial
<
SearchConfiguration
&
{
triggerSearch
:
boolean
,
focusResults
:
boolean
}
>
;
const
openArgDescription
=
{
description
:
'
Open a new search editor. Arguments passed can include variables like ${relativeFileDirname}.
'
,
args
:
[{
...
...
@@ -228,6 +229,8 @@ const openArgDescription = {
regexp
:
{
type
:
'
boolean
'
},
useIgnores
:
{
type
:
'
boolean
'
},
showIncludesExcludes
:
{
type
:
'
boolean
'
},
triggerSearch
:
{
type
:
'
boolean
'
},
focusResults
:
{
type
:
'
boolean
'
},
}
}
}]
...
...
@@ -243,7 +246,7 @@ registerAction2(class extends Action2 {
description
:
openArgDescription
});
}
async
run
(
accessor
:
ServicesAccessor
,
args
:
Partial
<
SearchConfiguration
>
)
{
async
run
(
accessor
:
ServicesAccessor
,
args
:
OpenSearchEditorArgs
)
{
await
accessor
.
get
(
IInstantiationService
).
invokeFunction
(
openNewSearchEditor
,
args
);
}
});
...
...
@@ -258,7 +261,7 @@ registerAction2(class extends Action2 {
description
:
openArgDescription
});
}
async
run
(
accessor
:
ServicesAccessor
,
args
:
Partial
<
SearchConfiguration
>
)
{
async
run
(
accessor
:
ServicesAccessor
,
args
:
OpenSearchEditorArgs
)
{
await
accessor
.
get
(
IInstantiationService
).
invokeFunction
(
openNewSearchEditor
,
args
,
true
);
}
});
...
...
src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts
浏览文件 @
a6e747b7
...
...
@@ -410,7 +410,7 @@ export class SearchEditor extends BaseTextEditor {
this
.
searchResultEditor
.
focus
();
}
async
triggerSearch
(
_options
?:
{
resetCursor
?:
boolean
;
delay
?:
number
;
})
{
async
triggerSearch
(
_options
?:
{
resetCursor
?:
boolean
;
delay
?:
number
;
focusResults
?:
boolean
})
{
const
options
=
{
resetCursor
:
true
,
delay
:
0
,
...
_options
};
if
(
!
this
.
pauseSearching
)
{
...
...
@@ -421,6 +421,9 @@ export class SearchEditor extends BaseTextEditor {
this
.
searchResultEditor
.
setPosition
(
new
Position
(
1
,
1
));
this
.
searchResultEditor
.
setScrollPosition
({
scrollTop
:
0
,
scrollLeft
:
0
});
}
if
(
options
.
focusResults
)
{
this
.
searchResultEditor
.
focus
();
}
},
options
.
delay
);
}
}
...
...
src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts
浏览文件 @
a6e747b7
...
...
@@ -14,7 +14,7 @@ import { ILabelService } from 'vs/platform/label/common/label';
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
SearchResult
}
from
'
vs/workbench/contrib/search/common/searchModel
'
;
import
{
SearchEditor
}
from
'
vs/workbench/contrib/searchEditor/browser/searchEditor
'
;
import
{
getOrMakeSearchEditorInput
,
SearchEditorInput
,
SearchConfiguration
}
from
'
vs/workbench/contrib/searchEditor/browser/searchEditorInput
'
;
import
{
getOrMakeSearchEditorInput
,
SearchEditorInput
}
from
'
vs/workbench/contrib/searchEditor/browser/searchEditorInput
'
;
import
{
serializeSearchResultForEditor
}
from
'
vs/workbench/contrib/searchEditor/browser/searchEditorSerialization
'
;
import
{
IEditorService
,
SIDE_GROUP
,
ACTIVE_GROUP
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
ISearchConfigurationProperties
}
from
'
vs/workbench/services/search/common/search
'
;
...
...
@@ -25,6 +25,7 @@ import { IHistoryService } from 'vs/workbench/services/history/common/history';
import
{
Schemas
}
from
'
vs/base/common/network
'
;
import
{
withNullAsUndefined
}
from
'
vs/base/common/types
'
;
import
{
OpenNewEditorCommandId
}
from
'
vs/workbench/contrib/searchEditor/browser/constants
'
;
import
{
OpenSearchEditorArgs
}
from
'
vs/workbench/contrib/searchEditor/browser/searchEditor.contribution
'
;
export
const
toggleSearchEditorCaseSensitiveCommand
=
(
accessor
:
ServicesAccessor
)
=>
{
const
editorService
=
accessor
.
get
(
IEditorService
);
...
...
@@ -99,7 +100,7 @@ export class OpenSearchEditorAction extends Action {
}
export
const
openNewSearchEditor
=
async
(
accessor
:
ServicesAccessor
,
args
:
Partial
<
SearchConfiguration
>
=
{},
toSide
=
false
)
=>
{
async
(
accessor
:
ServicesAccessor
,
_args
:
OpenSearchEditorArgs
=
{},
toSide
=
false
)
=>
{
const
editorService
=
accessor
.
get
(
IEditorService
);
const
telemetryService
=
accessor
.
get
(
ITelemetryService
);
const
instantiationService
=
accessor
.
get
(
IInstantiationService
);
...
...
@@ -111,11 +112,6 @@ export const openNewSearchEditor =
const
activeWorkspaceRootUri
=
historyService
.
getLastActiveWorkspaceRoot
(
Schemas
.
file
);
const
lastActiveWorkspaceRoot
=
activeWorkspaceRootUri
?
withNullAsUndefined
(
workspaceContextService
.
getWorkspaceFolder
(
activeWorkspaceRootUri
))
:
undefined
;
const
resolvedArgs
:
Record
<
string
,
any
>
=
{};
Object
.
entries
(
args
).
forEach
(([
name
,
value
])
=>
{
resolvedArgs
[
name
as
any
]
=
(
typeof
value
===
'
string
'
)
?
configurationResolverService
.
resolve
(
lastActiveWorkspaceRoot
,
value
)
:
value
;
});
const
activeEditorControl
=
editorService
.
activeTextEditorControl
;
let
activeModel
:
ICodeEditor
|
undefined
;
let
selected
=
''
;
...
...
@@ -140,11 +136,20 @@ export const openNewSearchEditor =
telemetryService
.
publicLog2
(
'
searchEditor/openNewSearchEditor
'
);
const
input
=
instantiationService
.
invokeFunction
(
getOrMakeSearchEditorInput
,
{
config
:
{
query
:
selected
,
...
resolvedArgs
},
text
:
''
});
const
args
:
Record
<
string
,
any
>
=
{
query
:
selected
};
Object
.
entries
(
_args
).
forEach
(([
name
,
value
])
=>
{
args
[
name
as
any
]
=
(
typeof
value
===
'
string
'
)
?
configurationResolverService
.
resolve
(
lastActiveWorkspaceRoot
,
value
)
:
value
;
});
const
input
=
instantiationService
.
invokeFunction
(
getOrMakeSearchEditorInput
,
{
config
:
args
,
text
:
''
});
const
editor
=
await
editorService
.
openEditor
(
input
,
{
pinned
:
true
},
toSide
?
SIDE_GROUP
:
ACTIVE_GROUP
)
as
SearchEditor
;
if
(
selected
&&
configurationService
.
getValue
<
ISearchConfigurationProperties
>
(
'
search
'
).
searchOnType
)
{
editor
.
triggerSearch
();
const
searchOnType
=
configurationService
.
getValue
<
ISearchConfigurationProperties
>
(
'
search
'
).
searchOnType
;
if
(
args
.
triggerSearch
===
true
||
args
.
triggerSearch
!==
false
&&
searchOnType
&&
args
.
query
)
{
editor
.
triggerSearch
({
focusResults
:
args
.
focusResults
!==
false
});
}
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录