Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
49220160
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,发现更多精彩内容 >>
提交
49220160
编写于
4月 24, 2016
作者:
I
Inori
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add selectAllMatches command
上级
849abd65
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
77 addition
and
1 deletion
+77
-1
src/vs/editor/contrib/find/common/findController.ts
src/vs/editor/contrib/find/common/findController.ts
+12
-0
src/vs/editor/contrib/find/common/findModel.ts
src/vs/editor/contrib/find/common/findModel.ts
+17
-1
src/vs/editor/contrib/find/common/selectAllMatchesCommand.ts
src/vs/editor/contrib/find/common/selectAllMatchesCommand.ts
+48
-0
未找到文件。
src/vs/editor/contrib/find/common/findController.ts
浏览文件 @
49220160
...
...
@@ -220,6 +220,15 @@ export class CommonFindController extends Disposable implements editorCommon.IEd
}
return
false
;
}
public
selectAllMatches
():
boolean
{
if
(
this
.
_model
)
{
this
.
_model
.
selectAll
();
this
.
closeFindWidget
();
return
true
;
}
return
false
;
}
}
export
class
StartFindAction
extends
EditorAction
{
...
...
@@ -722,3 +731,6 @@ registerFindCommand(FIND_IDS.ReplaceOneAction, x => x.replace(), {
registerFindCommand
(
FIND_IDS
.
ReplaceAllAction
,
x
=>
x
.
replaceAll
(),
{
primary
:
KeyMod
.
CtrlCmd
|
KeyMod
.
Alt
|
KeyCode
.
Enter
});
registerFindCommand
(
FIND_IDS
.
SelectAllMatchesAction
,
x
=>
x
.
selectAllMatches
(),
{
primary
:
KeyMod
.
Alt
|
KeyCode
.
Enter
});
src/vs/editor/contrib/find/common/findModel.ts
浏览文件 @
49220160
...
...
@@ -14,6 +14,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon';
import
{
FindDecorations
}
from
'
./findDecorations
'
;
import
{
FindReplaceState
,
FindReplaceStateChangedEvent
}
from
'
./findState
'
;
import
{
ReplaceAllCommand
}
from
'
./replaceAllCommand
'
;
import
{
SelectAllMatchesCommand
}
from
'
./selectAllMatchesCommand
'
;
export
const
FIND_IDS
=
{
StartFindAction
:
'
actions.find
'
,
...
...
@@ -29,7 +30,8 @@ export const FIND_IDS = {
ToggleWholeWordCommand
:
'
toggleFindWholeWord
'
,
ToggleRegexCommand
:
'
toggleFindRegex
'
,
ReplaceOneAction
:
'
editor.action.replaceOne
'
,
ReplaceAllAction
:
'
editor.action.replaceAll
'
ReplaceAllAction
:
'
editor.action.replaceAll
'
,
SelectAllMatchesAction
:
'
editor.action.selectAllMatches
'
};
export
const
MATCHES_LIMIT
=
999
;
...
...
@@ -350,6 +352,20 @@ export class FindModelBoundToEditorModel {
this
.
research
(
false
);
}
public
selectAll
():
void
{
if
(
!
this
.
_hasMatches
())
{
return
;
}
let
findScope
=
this
.
_decorations
.
getFindScope
();
// Get all the ranges (even more than the highlighted ones)
let
ranges
=
this
.
_findMatches
(
findScope
,
Number
.
MAX_VALUE
);
let
command
=
new
SelectAllMatchesCommand
(
this
.
_editor
,
ranges
);
this
.
_executeEditorCommand
(
'
selectAllMatches
'
,
command
);
}
private
_executeEditorCommand
(
source
:
string
,
command
:
editorCommon
.
ICommand
):
void
{
try
{
this
.
_ignoreModelContentChanged
=
true
;
...
...
src/vs/editor/contrib/find/common/selectAllMatchesCommand.ts
0 → 100644
浏览文件 @
49220160
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
import
{
Selection
}
from
'
vs/editor/common/core/selection
'
;
import
{
ISelection
}
from
'
vs/editor/common/editorCommon
'
;
import
*
as
editorCommon
from
'
vs/editor/common/editorCommon
'
;
export
class
SelectAllMatchesCommand
implements
editorCommon
.
ICommand
{
private
_editor
:
editorCommon
.
ICommonCodeEditor
;
private
_ranges
:
editorCommon
.
IEditorRange
[];
constructor
(
editor
:
editorCommon
.
ICommonCodeEditor
,
ranges
:
editorCommon
.
IEditorRange
[])
{
this
.
_editor
=
editor
;
this
.
_ranges
=
ranges
;
}
public
getEditOperations
(
model
:
editorCommon
.
ITokenizedModel
,
builder
:
editorCommon
.
IEditOperationBuilder
):
void
{
if
(
this
.
_ranges
.
length
>
0
)
{
// Collect all select operations
let
newSelections
=
new
Array
<
ISelection
>
();
for
(
var
i
=
0
;
i
<
this
.
_ranges
.
length
;
i
++
)
{
newSelections
.
push
({
selectionStartLineNumber
:
this
.
_ranges
[
i
].
startLineNumber
,
selectionStartColumn
:
this
.
_ranges
[
i
].
startColumn
,
positionLineNumber
:
this
.
_ranges
[
i
].
startLineNumber
,
positionColumn
:
this
.
_ranges
[
i
].
endColumn
});
}
this
.
_editor
.
setSelections
(
newSelections
);
}
}
public
computeCursorState
(
model
:
editorCommon
.
ITokenizedModel
,
helper
:
editorCommon
.
ICursorStateComputerData
):
editorCommon
.
IEditorSelection
{
var
inverseEditOperations
=
helper
.
getInverseEditOperations
();
var
srcRange
=
inverseEditOperations
[
inverseEditOperations
.
length
-
1
].
range
;
return
Selection
.
createSelection
(
srcRange
.
endLineNumber
,
srcRange
.
endColumn
,
srcRange
.
endLineNumber
,
srcRange
.
endColumn
);
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录