Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
2217a39b
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,体验更适合开发者的 AI 搜索 >>
提交
2217a39b
编写于
11月 21, 2017
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes #37401: Render before/after decorations on their own <span> elements
上级
8bfd9d5a
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
34 addition
and
17 deletion
+34
-17
src/vs/editor/browser/viewParts/lines/rangeUtil.ts
src/vs/editor/browser/viewParts/lines/rangeUtil.ts
+13
-0
src/vs/editor/common/viewLayout/lineDecorations.ts
src/vs/editor/common/viewLayout/lineDecorations.ts
+1
-1
src/vs/editor/common/viewLayout/viewLineRenderer.ts
src/vs/editor/common/viewLayout/viewLineRenderer.ts
+4
-0
src/vs/editor/common/viewModel/viewModelDecorations.ts
src/vs/editor/common/viewModel/viewModelDecorations.ts
+2
-2
src/vs/editor/test/common/viewModel/viewModelDecorations.test.ts
...editor/test/common/viewModel/viewModelDecorations.test.ts
+14
-14
未找到文件。
src/vs/editor/browser/viewParts/lines/rangeUtil.ts
浏览文件 @
2217a39b
...
...
@@ -5,6 +5,7 @@
'
use strict
'
;
import
{
HorizontalRange
}
from
'
vs/editor/common/view/renderingContext
'
;
import
{
Constants
}
from
'
vs/editor/common/core/uint
'
;
class
FloatHorizontalRange
{
_floatHorizontalRangeBrand
:
void
;
...
...
@@ -133,6 +134,18 @@ export class RangeUtil {
let
startElement
=
domNode
.
children
[
startChildIndex
].
firstChild
;
let
endElement
=
domNode
.
children
[
endChildIndex
].
firstChild
;
if
(
!
startElement
||
!
endElement
)
{
// When having an empty <span> (without any text content), try to move to the previous <span>
if
(
!
startElement
&&
startOffset
===
0
&&
startChildIndex
>
0
)
{
startElement
=
domNode
.
children
[
startChildIndex
-
1
].
firstChild
;
startOffset
=
Constants
.
MAX_SAFE_SMALL_INTEGER
;
}
if
(
!
endElement
&&
endOffset
===
0
&&
endChildIndex
>
0
)
{
endElement
=
domNode
.
children
[
endChildIndex
-
1
].
firstChild
;
endOffset
=
Constants
.
MAX_SAFE_SMALL_INTEGER
;
}
}
if
(
!
startElement
||
!
endElement
)
{
return
null
;
}
...
...
src/vs/editor/common/viewLayout/lineDecorations.ts
浏览文件 @
2217a39b
...
...
@@ -58,7 +58,7 @@ export class LineDecoration {
continue
;
}
if
(
range
.
isEmpty
())
{
if
(
range
.
isEmpty
()
&&
d
.
type
===
InlineDecorationType
.
Regular
)
{
// Ignore empty range decorations
continue
;
}
...
...
src/vs/editor/common/viewLayout/viewLineRenderer.ts
浏览文件 @
2217a39b
...
...
@@ -569,6 +569,10 @@ function _applyInlineDecorations(lineContent: string, len: number, tokens: LineP
}
}
if
(
lineDecorationIndex
<
lineDecorationsLen
&&
lineDecorations
[
lineDecorationIndex
].
startOffset
===
tokens
[
tokens
.
length
-
1
].
endIndex
)
{
result
[
resultLen
++
]
=
new
LinePart
(
lastResultEndIndex
,
lineDecorations
[
lineDecorationIndex
].
className
);
}
return
result
;
}
...
...
src/vs/editor/common/viewModel/viewModelDecorations.ts
浏览文件 @
2217a39b
...
...
@@ -133,7 +133,7 @@ export class ViewModelDecorations implements IDisposable {
if
(
decorationOptions
.
beforeContentClassName
)
{
if
(
startLineNumber
<=
viewRange
.
startLineNumber
&&
viewRange
.
startLineNumber
<=
endLineNumber
)
{
let
inlineDecoration
=
new
InlineDecoration
(
new
Range
(
viewRange
.
startLineNumber
,
viewRange
.
startColumn
,
viewRange
.
startLineNumber
,
viewRange
.
startColumn
+
1
),
new
Range
(
viewRange
.
startLineNumber
,
viewRange
.
startColumn
,
viewRange
.
startLineNumber
,
viewRange
.
startColumn
),
decorationOptions
.
beforeContentClassName
,
InlineDecorationType
.
Before
);
...
...
@@ -143,7 +143,7 @@ export class ViewModelDecorations implements IDisposable {
if
(
decorationOptions
.
afterContentClassName
)
{
if
(
startLineNumber
<=
viewRange
.
endLineNumber
&&
viewRange
.
endLineNumber
<=
endLineNumber
)
{
let
inlineDecoration
=
new
InlineDecoration
(
new
Range
(
viewRange
.
endLineNumber
,
viewRange
.
endColumn
-
1
,
viewRange
.
endLineNumber
,
viewRange
.
endColumn
),
new
Range
(
viewRange
.
endLineNumber
,
viewRange
.
endColumn
,
viewRange
.
endLineNumber
,
viewRange
.
endColumn
),
decorationOptions
.
afterContentClassName
,
InlineDecorationType
.
After
);
...
...
src/vs/editor/test/common/viewModel/viewModelDecorations.test.ts
浏览文件 @
2217a39b
...
...
@@ -109,7 +109,7 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
0
,
2
,
1
),
range
:
new
Range
(
2
,
1
,
2
,
1
),
inlineClassName
:
'
a-dec2
'
,
type
:
InlineDecorationType
.
After
},
...
...
@@ -119,7 +119,7 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
1
,
2
,
2
),
range
:
new
Range
(
2
,
2
,
2
,
2
),
inlineClassName
:
'
a-dec3
'
,
type
:
InlineDecorationType
.
After
},
...
...
@@ -139,12 +139,12 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
1
,
2
,
2
),
range
:
new
Range
(
2
,
1
,
2
,
1
),
inlineClassName
:
'
b-dec6
'
,
type
:
InlineDecorationType
.
Before
},
{
range
:
new
Range
(
2
,
0
,
2
,
1
),
range
:
new
Range
(
2
,
1
,
2
,
1
),
inlineClassName
:
'
a-dec6
'
,
type
:
InlineDecorationType
.
After
},
...
...
@@ -154,12 +154,12 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
1
,
2
,
2
),
range
:
new
Range
(
2
,
1
,
2
,
1
),
inlineClassName
:
'
b-dec7
'
,
type
:
InlineDecorationType
.
Before
},
{
range
:
new
Range
(
2
,
2
,
2
,
3
),
range
:
new
Range
(
2
,
3
,
2
,
3
),
inlineClassName
:
'
a-dec7
'
,
type
:
InlineDecorationType
.
After
},
...
...
@@ -169,7 +169,7 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
1
,
2
,
2
),
range
:
new
Range
(
2
,
1
,
2
,
1
),
inlineClassName
:
'
b-dec8
'
,
type
:
InlineDecorationType
.
Before
},
...
...
@@ -179,7 +179,7 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
1
,
2
,
2
),
range
:
new
Range
(
2
,
1
,
2
,
1
),
inlineClassName
:
'
b-dec9
'
,
type
:
InlineDecorationType
.
Before
},
...
...
@@ -189,12 +189,12 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
3
,
2
,
4
),
range
:
new
Range
(
2
,
3
,
2
,
3
),
inlineClassName
:
'
b-dec10
'
,
type
:
InlineDecorationType
.
Before
},
{
range
:
new
Range
(
2
,
4
,
2
,
5
),
range
:
new
Range
(
2
,
5
,
2
,
5
),
inlineClassName
:
'
a-dec10
'
,
type
:
InlineDecorationType
.
After
},
...
...
@@ -204,7 +204,7 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
3
,
2
,
4
),
range
:
new
Range
(
2
,
3
,
2
,
3
),
inlineClassName
:
'
b-dec11
'
,
type
:
InlineDecorationType
.
Before
},
...
...
@@ -214,7 +214,7 @@ suite('ViewModelDecorations', () => {
type
:
InlineDecorationType
.
Regular
},
{
range
:
new
Range
(
2
,
3
,
2
,
4
),
range
:
new
Range
(
2
,
3
,
2
,
3
),
inlineClassName
:
'
b-dec12
'
,
type
:
InlineDecorationType
.
Before
},
...
...
@@ -326,12 +326,12 @@ suite('ViewModelDecorations', () => {
).
inlineDecorations
;
assert
.
deepEqual
(
inlineDecorations
,
[
{
range
:
new
Range
(
1
,
1
,
1
,
2
),
range
:
new
Range
(
1
,
1
,
1
,
1
),
inlineClassName
:
'
before1
'
,
type
:
InlineDecorationType
.
Before
},
{
range
:
new
Range
(
1
,
0
,
1
,
1
),
range
:
new
Range
(
1
,
1
,
1
,
1
),
inlineClassName
:
'
after1
'
,
type
:
InlineDecorationType
.
After
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录