Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
f6097950
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,发现更多精彩内容 >>
提交
f6097950
编写于
6月 28, 2016
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Funnel getLineIndentGuide to viewLineParts
上级
40479e9d
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
34 addition
and
21 deletion
+34
-21
src/vs/editor/browser/viewParts/lines/viewLine.ts
src/vs/editor/browser/viewParts/lines/viewLine.ts
+1
-1
src/vs/editor/browser/widget/diffEditorWidget.ts
src/vs/editor/browser/widget/diffEditorWidget.ts
+2
-2
src/vs/editor/common/viewLayout/viewLineParts.ts
src/vs/editor/common/viewLayout/viewLineParts.ts
+3
-3
src/vs/editor/common/viewModel/splitLinesCollection.ts
src/vs/editor/common/viewModel/splitLinesCollection.ts
+7
-0
src/vs/editor/common/viewModel/viewModel.ts
src/vs/editor/common/viewModel/viewModel.ts
+1
-0
src/vs/editor/common/viewModel/viewModelImpl.ts
src/vs/editor/common/viewModel/viewModelImpl.ts
+5
-0
src/vs/editor/test/common/viewLayout/viewLineParts.test.ts
src/vs/editor/test/common/viewLayout/viewLineParts.test.ts
+15
-15
未找到文件。
src/vs/editor/browser/viewParts/lines/viewLine.ts
浏览文件 @
f6097950
...
...
@@ -119,7 +119,7 @@ export class ViewLine implements IVisibleLineData {
this
.
_context
.
model
.
getLineTokens
(
lineNumber
),
inlineDecorations
,
this
.
_renderWhitespace
,
this
.
_indentGuides
this
.
_indentGuides
?
this
.
_context
.
model
.
getLineIndentGuide
(
lineNumber
)
:
0
);
}
...
...
src/vs/editor/browser/widget/diffEditorWidget.ts
浏览文件 @
f6097950
...
...
@@ -1836,8 +1836,8 @@ class InlineViewZonesComputer extends ViewZonesComputer {
let
lineContent
=
originalModel
.
getLineContent
(
lineNumber
);
let
lineTokens
=
new
ViewLineTokens
([
new
ViewLineToken
(
0
,
''
)],
0
,
lineContent
.
length
);
let
parts
=
createLineParts
(
lineNumber
,
1
,
lineContent
,
tabSize
,
lineTokens
,
decorations
,
config
.
viewInfo
.
renderWhitespace
,
config
.
viewInfo
.
indentGuides
);
let
indentGuides
=
config
.
viewInfo
.
indentGuides
?
originalModel
.
getLineIndentGuide
(
lineNumber
)
:
0
;
let
parts
=
createLineParts
(
lineNumber
,
1
,
lineContent
,
tabSize
,
lineTokens
,
decorations
,
config
.
viewInfo
.
renderWhitespace
,
indentGuides
);
let
r
=
renderLine
(
new
RenderLineInput
(
lineContent
,
...
...
src/vs/editor/common/viewLayout/viewLineParts.ts
浏览文件 @
f6097950
...
...
@@ -14,7 +14,7 @@ function cmpLineDecorations(a:InlineDecoration, b:InlineDecoration): number {
return
Range
.
compareRangesUsingStarts
(
a
.
range
,
b
.
range
);
}
export
function
createLineParts
(
lineNumber
:
number
,
minLineColumn
:
number
,
lineContent
:
string
,
tabSize
:
number
,
lineTokens
:
ViewLineTokens
,
rawLineDecorations
:
InlineDecoration
[],
renderWhitespace
:
boolean
,
indentGuides
:
boolean
):
LineParts
{
export
function
createLineParts
(
lineNumber
:
number
,
minLineColumn
:
number
,
lineContent
:
string
,
tabSize
:
number
,
lineTokens
:
ViewLineTokens
,
rawLineDecorations
:
InlineDecoration
[],
renderWhitespace
:
boolean
,
indentGuides
:
number
):
LineParts
{
if
(
indentGuides
||
renderWhitespace
)
{
let
oldLength
=
rawLineDecorations
.
length
;
rawLineDecorations
=
insertCustomLineDecorations
(
indentGuides
,
renderWhitespace
,
lineNumber
,
lineContent
,
tabSize
,
lineTokens
.
getFauxIndentLength
(),
rawLineDecorations
);
...
...
@@ -100,8 +100,8 @@ function insertOneCustomLineDecoration(dest:InlineDecoration[], lineNumber:numbe
dest
.
push
(
new
InlineDecoration
(
new
Range
(
lineNumber
,
startColumn
,
lineNumber
,
endColumn
),
className
));
}
function
insertCustomLineDecorations
(
indentGuides
:
boolean
,
renderWhitespace
:
boolean
,
lineNumber
:
number
,
lineContent
:
string
,
tabSize
:
number
,
fauxIndentLength
:
number
,
rawLineDecorations
:
InlineDecoration
[]):
InlineDecoration
[]
{
if
(
!
indentGuides
&&
!
renderWhitespace
)
{
function
insertCustomLineDecorations
(
indentGuides
:
number
,
renderWhitespace
:
boolean
,
lineNumber
:
number
,
lineContent
:
string
,
tabSize
:
number
,
fauxIndentLength
:
number
,
rawLineDecorations
:
InlineDecoration
[]):
InlineDecoration
[]
{
if
(
indentGuides
===
0
&&
!
renderWhitespace
)
{
return
rawLineDecorations
;
}
...
...
src/vs/editor/common/viewModel/splitLinesCollection.ts
浏览文件 @
f6097950
...
...
@@ -633,6 +633,13 @@ export class SplitLinesCollection implements ILinesCollection {
return
this
.
lines
[
lineIndex
].
getOutputLineContent
(
this
.
model
,
lineIndex
+
1
,
remainder
);
}
public
getOutputIndentGuide
(
outputLineNumber
:
number
):
number
{
this
.
_ensureValidState
();
outputLineNumber
=
this
.
_toValidOutputLineNumber
(
outputLineNumber
);
let
r
=
this
.
prefixSumComputer
.
getIndexOf
(
outputLineNumber
-
1
);
return
this
.
model
.
getLineIndentGuide
(
r
.
index
+
1
);
}
public
getOutputLineMinColumn
(
outputLineNumber
:
number
):
number
{
this
.
_ensureValidState
();
outputLineNumber
=
this
.
_toValidOutputLineNumber
(
outputLineNumber
);
...
...
src/vs/editor/common/viewModel/viewModel.ts
浏览文件 @
f6097950
...
...
@@ -25,6 +25,7 @@ export interface IViewModel extends IEventEmitter {
getLineCount
():
number
;
getLineContent
(
lineNumber
:
number
):
string
;
getLineIndentGuide
(
lineNumber
:
number
):
number
;
getLineMinColumn
(
lineNumber
:
number
):
number
;
getLineMaxColumn
(
lineNumber
:
number
):
number
;
getLineFirstNonWhitespaceColumn
(
lineNumber
:
number
):
number
;
...
...
src/vs/editor/common/viewModel/viewModelImpl.ts
浏览文件 @
f6097950
...
...
@@ -27,6 +27,7 @@ export interface ILinesCollection {
onModelLineChanged
(
versionId
:
number
,
lineNumber
:
number
,
newText
:
string
,
emit
:(
evenType
:
string
,
payload
:
any
)
=>
void
):
boolean
;
getOutputLineCount
():
number
;
getOutputLineContent
(
outputLineNumber
:
number
):
string
;
getOutputIndentGuide
(
outputLineNumber
:
number
):
number
;
getOutputLineMinColumn
(
outputLineNumber
:
number
):
number
;
getOutputLineMaxColumn
(
outputLineNumber
:
number
):
number
;
getOutputLineTokens
(
outputLineNumber
:
number
):
ViewLineTokens
;
...
...
@@ -381,6 +382,10 @@ export class ViewModel extends EventEmitter implements IViewModel {
return
this
.
lines
.
getOutputLineContent
(
lineNumber
);
}
public
getLineIndentGuide
(
lineNumber
:
number
):
number
{
return
this
.
lines
.
getOutputIndentGuide
(
lineNumber
);
}
public
getLineMinColumn
(
lineNumber
:
number
):
number
{
return
this
.
lines
.
getOutputLineMinColumn
(
lineNumber
);
}
...
...
src/vs/editor/test/common/viewLayout/viewLineParts.test.ts
浏览文件 @
f6097950
...
...
@@ -55,7 +55,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
]);
});
function
testCreateLineParts
(
lineContent
:
string
,
tokens
:
ViewLineToken
[],
fauxIndentLength
:
number
,
renderWhitespace
:
boolean
,
indentGuides
:
boolean
,
expected
:
ViewLineToken
[]):
void
{
function
testCreateLineParts
(
lineContent
:
string
,
tokens
:
ViewLineToken
[],
fauxIndentLength
:
number
,
renderWhitespace
:
boolean
,
indentGuides
:
number
,
expected
:
ViewLineToken
[]):
void
{
let
lineParts
=
createLineParts
(
1
,
1
,
lineContent
,
4
,
new
ViewLineTokens
(
tokens
,
fauxIndentLength
,
lineContent
.
length
),
[],
renderWhitespace
,
indentGuides
);
let
actual
=
lineParts
.
getParts
();
...
...
@@ -70,7 +70,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
false
,
false
,
0
,
[
new
ViewLineToken
(
0
,
''
)
]
...
...
@@ -85,7 +85,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
false
,
false
,
0
,
[
new
ViewLineToken
(
0
,
'
a
'
),
new
ViewLineToken
(
6
,
'
b
'
)
...
...
@@ -102,7 +102,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
true
,
false
,
0
,
[
new
ViewLineToken
(
0
,
'
leading whitespace
'
),
new
ViewLineToken
(
4
,
'
a
'
),
...
...
@@ -121,7 +121,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
true
,
false
,
0
,
[
new
ViewLineToken
(
0
,
'
leading whitespace
'
),
new
ViewLineToken
(
4
,
'
leading whitespace
'
),
...
...
@@ -142,7 +142,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
true
,
false
,
0
,
[
new
ViewLineToken
(
0
,
'
leading whitespace
'
),
new
ViewLineToken
(
1
,
'
leading whitespace
'
),
...
...
@@ -162,7 +162,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
true
,
false
,
0
,
[
new
ViewLineToken
(
0
,
'
leading whitespace
'
),
new
ViewLineToken
(
3
,
'
leading whitespace
'
),
...
...
@@ -186,7 +186,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
false
,
true
,
1
,
[
new
ViewLineToken
(
0
,
'
indent-guide
'
),
new
ViewLineToken
(
4
,
'
a
'
),
...
...
@@ -204,7 +204,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
false
,
true
,
2
,
[
new
ViewLineToken
(
0
,
'
indent-guide
'
),
new
ViewLineToken
(
4
,
'
indent-guide
'
),
...
...
@@ -223,7 +223,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
false
,
true
,
2
,
[
new
ViewLineToken
(
0
,
'
indent-guide
'
),
new
ViewLineToken
(
1
,
'
indent-guide
'
),
...
...
@@ -242,7 +242,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
false
,
true
,
2
,
[
new
ViewLineToken
(
0
,
'
indent-guide
'
),
new
ViewLineToken
(
3
,
'
indent-guide
'
),
...
...
@@ -263,7 +263,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
0
,
true
,
true
,
2
,
[
new
ViewLineToken
(
0
,
'
leading whitespace indent-guide
'
),
new
ViewLineToken
(
3
,
'
leading whitespace indent-guide
'
),
...
...
@@ -288,7 +288,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
2
,
true
,
false
,
0
,
[
new
ViewLineToken
(
0
,
''
),
new
ViewLineToken
(
2
,
'
leading whitespace
'
),
...
...
@@ -312,7 +312,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
2
,
false
,
true
,
2
,
[
new
ViewLineToken
(
0
,
'
indent-guide
'
),
new
ViewLineToken
(
1
,
'
indent-guide
'
),
...
...
@@ -333,7 +333,7 @@ suite('Editor ViewLayout - ViewLineParts', () => {
],
2
,
true
,
true
,
2
,
[
new
ViewLineToken
(
0
,
'
indent-guide
'
),
new
ViewLineToken
(
1
,
'
indent-guide
'
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录