Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
c80de308
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,发现更多精彩内容 >>
提交
c80de308
编写于
11月 01, 2016
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
var -> let
上级
d5b3efd8
变更
31
隐藏空白更改
内联
并排
Showing
31 changed file
with
409 addition
and
496 deletion
+409
-496
src/vs/editor/browser/config/elementSizeObserver.ts
src/vs/editor/browser/config/elementSizeObserver.ts
+2
-2
src/vs/editor/browser/controller/mouseHandler.ts
src/vs/editor/browser/controller/mouseHandler.ts
+1
-1
src/vs/editor/browser/controller/pointerHandler.ts
src/vs/editor/browser/controller/pointerHandler.ts
+8
-8
src/vs/editor/browser/editorBrowser.ts
src/vs/editor/browser/editorBrowser.ts
+1
-1
src/vs/editor/browser/services/codeEditorServiceImpl.ts
src/vs/editor/browser/services/codeEditorServiceImpl.ts
+7
-7
src/vs/editor/browser/standalone/simpleServices.ts
src/vs/editor/browser/standalone/simpleServices.ts
+8
-9
src/vs/editor/browser/standalone/standaloneCodeEditor.ts
src/vs/editor/browser/standalone/standaloneCodeEditor.ts
+2
-2
src/vs/editor/browser/view/viewController.ts
src/vs/editor/browser/view/viewController.ts
+1
-1
src/vs/editor/browser/view/viewImpl.ts
src/vs/editor/browser/view/viewImpl.ts
+30
-30
src/vs/editor/browser/view/viewLayer.ts
src/vs/editor/browser/view/viewLayer.ts
+47
-69
src/vs/editor/browser/view/viewOverlays.ts
src/vs/editor/browser/view/viewOverlays.ts
+4
-5
src/vs/editor/browser/viewLayout/layoutProvider.ts
src/vs/editor/browser/viewLayout/layoutProvider.ts
+8
-8
src/vs/editor/browser/viewLayout/scrollManager.ts
src/vs/editor/browser/viewLayout/scrollManager.ts
+5
-5
src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts
...er/viewParts/currentLineHighlight/currentLineHighlight.ts
+2
-2
src/vs/editor/browser/viewParts/lines/viewLines.ts
src/vs/editor/browser/viewParts/lines/viewLines.ts
+23
-26
src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts
...editor/browser/viewParts/overlayWidgets/overlayWidgets.ts
+9
-9
src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts
...owser/viewParts/overviewRuler/decorationsOverviewRuler.ts
+6
-6
src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts
...or/browser/viewParts/scrollDecoration/scrollDecoration.ts
+1
-1
src/vs/editor/browser/viewParts/selections/selections.ts
src/vs/editor/browser/viewParts/selections/selections.ts
+18
-34
src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts
src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts
+1
-1
src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts
src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts
+15
-15
src/vs/editor/browser/viewParts/viewZones/viewZones.ts
src/vs/editor/browser/viewParts/viewZones/viewZones.ts
+2
-2
src/vs/editor/browser/widget/codeEditorWidget.ts
src/vs/editor/browser/widget/codeEditorWidget.ts
+30
-31
src/vs/editor/browser/widget/diffEditorWidget.ts
src/vs/editor/browser/widget/diffEditorWidget.ts
+139
-175
src/vs/editor/common/commands/replaceCommand.ts
src/vs/editor/common/commands/replaceCommand.ts
+6
-6
src/vs/editor/common/commands/shiftCommand.ts
src/vs/editor/common/commands/shiftCommand.ts
+5
-5
src/vs/editor/common/commands/surroundSelectionCommand.ts
src/vs/editor/common/commands/surroundSelectionCommand.ts
+3
-3
src/vs/editor/common/commands/trimTrailingWhitespaceCommand.ts
...s/editor/common/commands/trimTrailingWhitespaceCommand.ts
+18
-25
src/vs/editor/common/commonCodeEditor.ts
src/vs/editor/common/commonCodeEditor.ts
+1
-1
src/vs/editor/common/config/commonEditorConfig.ts
src/vs/editor/common/config/commonEditorConfig.ts
+1
-1
src/vs/editor/common/modes/supports.ts
src/vs/editor/common/modes/supports.ts
+5
-5
未找到文件。
src/vs/editor/browser/config/elementSizeObserver.ts
浏览文件 @
c80de308
...
...
@@ -57,8 +57,8 @@ export class ElementSizeObserver extends Disposable implements IElementSizeObser
}
private
measureReferenceDomElement
(
callChangeCallback
:
boolean
,
dimension
?:
IDimension
):
void
{
var
observedWidth
=
0
;
var
observedHeight
=
0
;
let
observedWidth
=
0
;
let
observedHeight
=
0
;
if
(
dimension
)
{
observedWidth
=
dimension
.
width
;
observedHeight
=
dimension
.
height
;
...
...
src/vs/editor/browser/controller/mouseHandler.ts
浏览文件 @
c80de308
...
...
@@ -287,7 +287,7 @@ export class MouseHandler extends ViewEventHandler implements IDisposable {
shouldHandle
=
false
;
}
var
focus
=
()
=>
{
let
focus
=
()
=>
{
// In IE11, if the focus is in the browser's address bar and
// then you click in the editor, calling preventDefault()
// will not move focus properly (focus remains the address bar)
...
...
src/vs/editor/browser/controller/pointerHandler.ts
浏览文件 @
c80de308
...
...
@@ -18,8 +18,8 @@ interface IThrottledGestureEvent {
translationY
:
number
;
}
var
gestureChangeEventMerger
=
(
lastEvent
:
IThrottledGestureEvent
,
currentEvent
:
MSGestureEvent
):
IThrottledGestureEvent
=>
{
var
r
=
{
function
gestureChangeEventMerger
(
lastEvent
:
IThrottledGestureEvent
,
currentEvent
:
MSGestureEvent
):
IThrottledGestureEvent
{
let
r
=
{
translationY
:
currentEvent
.
translationY
,
translationX
:
currentEvent
.
translationX
};
...
...
@@ -49,13 +49,13 @@ class MsPointerHandler extends MouseHandler implements IDisposable {
this
.
_installGestureHandlerTimeout
=
window
.
setTimeout
(()
=>
{
this
.
_installGestureHandlerTimeout
=
-
1
;
if
((
<
any
>
window
).
MSGesture
)
{
var
touchGesture
=
new
MSGesture
();
var
penGesture
=
new
MSGesture
();
let
touchGesture
=
new
MSGesture
();
let
penGesture
=
new
MSGesture
();
touchGesture
.
target
=
this
.
viewHelper
.
linesContentDomNode
;
penGesture
.
target
=
this
.
viewHelper
.
linesContentDomNode
;
this
.
viewHelper
.
linesContentDomNode
.
addEventListener
(
'
MSPointerDown
'
,
(
e
:
MSPointerEvent
)
=>
{
// Circumvent IE11 breaking change in e.pointerType & TypeScript's stale definitions
var
pointerType
=
<
any
>
e
.
pointerType
;
let
pointerType
=
<
any
>
e
.
pointerType
;
if
(
pointerType
===
((
<
any
>
e
).
MSPOINTER_TYPE_MOUSE
||
'
mouse
'
))
{
this
.
_lastPointerType
=
'
mouse
'
;
return
;
...
...
@@ -131,12 +131,12 @@ class StandardPointerHandler extends MouseHandler implements IDisposable {
// TODO@Alex: replace the usage of MSGesture here with something that works across all browsers
if
((
<
any
>
window
).
MSGesture
)
{
var
touchGesture
=
new
MSGesture
();
var
penGesture
=
new
MSGesture
();
let
touchGesture
=
new
MSGesture
();
let
penGesture
=
new
MSGesture
();
touchGesture
.
target
=
this
.
viewHelper
.
linesContentDomNode
;
penGesture
.
target
=
this
.
viewHelper
.
linesContentDomNode
;
this
.
viewHelper
.
linesContentDomNode
.
addEventListener
(
'
pointerdown
'
,
(
e
:
MSPointerEvent
)
=>
{
var
pointerType
=
<
any
>
e
.
pointerType
;
let
pointerType
=
<
any
>
e
.
pointerType
;
if
(
pointerType
===
'
mouse
'
)
{
this
.
_lastPointerType
=
'
mouse
'
;
return
;
...
...
src/vs/editor/browser/editorBrowser.ts
浏览文件 @
c80de308
...
...
@@ -142,7 +142,7 @@ export interface IViewController {
/**
* @internal
*/
export
var
ClassNames
=
{
export
const
ClassNames
=
{
TEXTAREA_COVER
:
'
textAreaCover
'
,
TEXTAREA
:
'
inputarea
'
,
LINES_CONTENT
:
'
lines-content
'
,
...
...
src/vs/editor/browser/services/codeEditorServiceImpl.ts
浏览文件 @
c80de308
...
...
@@ -80,7 +80,7 @@ class DecorationSubTypeOptionsProvider implements IModelDecorationOptionsProvide
this
.
_parentTypeKey
=
parentTypeKey
;
this
.
refCount
=
0
;
var
themedOpts
=
getThemedRenderOptions
(
options
);
let
themedOpts
=
getThemedRenderOptions
(
options
);
this
.
_beforeContentClassName
=
DecorationRenderHelper
.
createCSSRules
(
styleSheet
,
...
...
@@ -146,7 +146,7 @@ class DecorationTypeOptionsProvider implements IModelDecorationOptionsProvider {
constructor
(
styleSheet
:
HTMLStyleElement
,
key
:
string
,
options
:
IDecorationRenderOptions
)
{
this
.
refCount
=
0
;
var
themedOpts
=
getThemedRenderOptions
(
options
);
let
themedOpts
=
getThemedRenderOptions
(
options
);
this
.
className
=
DecorationRenderHelper
.
createCSSRules
(
styleSheet
,
...
...
@@ -446,14 +446,14 @@ interface IResolvedDecorationRenderOptions {
}
function
getThemedRenderOptions
<
T
>
(
opts
:
{
light
?:
T
,
dark
?:
T
}):
{
light
?:
T
,
dark
?:
T
}
{
// TODO@alex,joh - not really how/what deep clone is being used
// for here but it will break the URI
// for here but it will break the URI
TODO@martin
//
var
light = <T> objects.deepClone(opts);
var
light
=
<
T
>
parse
(
stringify
(
opts
));
//
let
light = <T> objects.deepClone(opts);
let
light
=
<
T
>
parse
(
stringify
(
opts
));
objects
.
mixin
(
light
,
opts
.
light
);
//
var
dark = <T> objects.deepClone(opts);
var
dark
=
<
T
>
parse
(
stringify
(
opts
));
//
let
dark = <T> objects.deepClone(opts);
let
dark
=
<
T
>
parse
(
stringify
(
opts
));
objects
.
mixin
(
dark
,
opts
.
dark
);
return
{
...
...
src/vs/editor/browser/standalone/simpleServices.ts
浏览文件 @
c80de308
...
...
@@ -115,14 +115,14 @@ export class SimpleEditorService implements IEditorService {
}
private
doOpenEditor
(
editor
:
editorCommon
.
ICommonCodeEditor
,
data
:
IResourceInput
):
IEditor
{
var
model
=
this
.
findModel
(
editor
,
data
);
let
model
=
this
.
findModel
(
editor
,
data
);
if
(
!
model
)
{
if
(
data
.
resource
)
{
if
(
this
.
openEditorDelegate
)
{
this
.
openEditorDelegate
(
data
.
resource
.
toString
());
return
null
;
}
else
{
var
schema
=
data
.
resource
.
scheme
;
let
schema
=
data
.
resource
.
scheme
;
if
(
schema
===
Schemas
.
http
||
schema
===
Schemas
.
https
)
{
// This is a fully qualified http or https URL
window
.
open
(
data
.
resource
.
toString
());
...
...
@@ -133,14 +133,13 @@ export class SimpleEditorService implements IEditorService {
return
null
;
}
var
selection
=
<
editorCommon
.
IRange
>
data
.
options
.
selection
;
let
selection
=
<
editorCommon
.
IRange
>
data
.
options
.
selection
;
if
(
selection
)
{
if
(
typeof
selection
.
endLineNumber
===
'
number
'
&&
typeof
selection
.
endColumn
===
'
number
'
)
{
editor
.
setSelection
(
selection
);
editor
.
revealRangeInCenter
(
selection
);
}
else
{
var
pos
=
{
let
pos
=
{
lineNumber
:
selection
.
startLineNumber
,
column
:
selection
.
startColumn
};
...
...
@@ -153,7 +152,7 @@ export class SimpleEditorService implements IEditorService {
}
private
findModel
(
editor
:
editorCommon
.
ICommonCodeEditor
,
data
:
IResourceInput
):
editorCommon
.
IModel
{
var
model
=
editor
.
getModel
();
let
model
=
editor
.
getModel
();
if
(
model
.
uri
.
toString
()
!==
data
.
resource
.
toString
())
{
return
null
;
}
...
...
@@ -162,7 +161,7 @@ export class SimpleEditorService implements IEditorService {
}
public
resolveEditorModel
(
typedData
:
IResourceInput
,
refresh
?:
boolean
):
TPromise
<
ITextEditorModel
>
{
var
model
:
editorCommon
.
IModel
;
let
model
:
editorCommon
.
IModel
;
model
=
this
.
editor
.
withTypedEditor
(
(
editor
)
=>
this
.
findModel
(
editor
,
typedData
),
...
...
@@ -224,7 +223,7 @@ export class SimpleMessageService implements IMessageService {
}
public
confirm
(
confirmation
:
IConfirmation
):
boolean
{
var
messageText
=
confirmation
.
message
;
let
messageText
=
confirmation
.
message
;
if
(
confirmation
.
detail
)
{
messageText
=
messageText
+
'
\n\n
'
+
confirmation
.
detail
;
}
...
...
@@ -277,7 +276,7 @@ export class StandaloneKeybindingService extends KeybindingService {
if
(
commandId
===
null
)
{
commandId
=
'
DYNAMIC_
'
+
(
++
StandaloneKeybindingService
.
LAST_GENERATED_ID
);
}
var
parsedContext
=
IOSupport
.
readKeybindingWhen
(
when
);
let
parsedContext
=
IOSupport
.
readKeybindingWhen
(
when
);
this
.
_dynamicKeybindings
.
push
({
keybinding
:
keybinding
,
command
:
commandId
,
...
...
src/vs/editor/browser/standalone/standaloneCodeEditor.ts
浏览文件 @
c80de308
...
...
@@ -135,7 +135,7 @@ export class StandaloneEditor extends CodeEditor implements IStandaloneCodeEdito
return
null
;
}
if
(
Array
.
isArray
(
descriptor
.
keybindings
))
{
var
handler
:
ICommandHandler
=
(
accessor
)
=>
{
let
handler
:
ICommandHandler
=
(
accessor
)
=>
{
return
this
.
trigger
(
'
keyboard
'
,
descriptor
.
id
,
null
);
};
descriptor
.
keybindings
.
forEach
((
kb
)
=>
{
...
...
@@ -221,7 +221,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon
return
null
;
}
if
(
Array
.
isArray
(
descriptor
.
keybindings
))
{
var
handler
:
ICommandHandler
=
(
ctx
)
=>
{
let
handler
:
ICommandHandler
=
(
ctx
)
=>
{
return
this
.
trigger
(
'
keyboard
'
,
descriptor
.
id
,
null
);
};
descriptor
.
keybindings
.
forEach
((
kb
)
=>
{
...
...
src/vs/editor/browser/view/viewController.ts
浏览文件 @
c80de308
...
...
@@ -69,7 +69,7 @@ export class ViewController implements IViewController {
}
private
_validateViewColumn
(
viewPosition
:
Position
):
Position
{
var
minColumn
=
this
.
viewModel
.
getLineMinColumn
(
viewPosition
.
lineNumber
);
let
minColumn
=
this
.
viewModel
.
getLineMinColumn
(
viewPosition
.
lineNumber
);
if
(
viewPosition
.
column
<
minColumn
)
{
return
new
Position
(
viewPosition
.
lineNumber
,
minColumn
);
}
...
...
src/vs/editor/browser/view/viewImpl.ts
浏览文件 @
c80de308
...
...
@@ -98,7 +98,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
this
.
_renderAnimationFrame
=
null
;
this
.
outgoingEventBus
=
new
EventEmitter
();
var
viewController
=
new
ViewController
(
model
,
triggerCursorHandler
,
this
.
outgoingEventBus
,
commandService
);
let
viewController
=
new
ViewController
(
model
,
triggerCursorHandler
,
this
.
outgoingEventBus
,
commandService
);
this
.
listenersToRemove
=
[];
this
.
listenersToDispose
=
[];
...
...
@@ -159,7 +159,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
}
private
_flushAnyAccumulatedEvents
():
void
{
var
toEmit
=
this
.
accumulatedModelEvents
;
let
toEmit
=
this
.
accumulatedModelEvents
;
this
.
accumulatedModelEvents
=
[];
if
(
toEmit
.
length
>
0
)
{
this
.
eventDispatcher
.
emitMany
(
toEmit
);
...
...
@@ -217,24 +217,24 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
this
.
viewParts
.
push
(
this
.
viewZones
);
// Decorations overview ruler
var
decorationsOverviewRuler
=
new
DecorationsOverviewRuler
(
let
decorationsOverviewRuler
=
new
DecorationsOverviewRuler
(
this
.
_context
,
this
.
layoutProvider
.
getScrollHeight
(),
(
lineNumber
:
number
)
=>
this
.
layoutProvider
.
getVerticalOffsetForLineNumber
(
lineNumber
)
);
this
.
viewParts
.
push
(
decorationsOverviewRuler
);
var
scrollDecoration
=
new
ScrollDecorationViewPart
(
this
.
_context
);
let
scrollDecoration
=
new
ScrollDecorationViewPart
(
this
.
_context
);
this
.
viewParts
.
push
(
scrollDecoration
);
var
contentViewOverlays
=
new
ContentViewOverlays
(
this
.
_context
,
this
.
layoutProvider
);
let
contentViewOverlays
=
new
ContentViewOverlays
(
this
.
_context
,
this
.
layoutProvider
);
this
.
viewParts
.
push
(
contentViewOverlays
);
contentViewOverlays
.
addDynamicOverlay
(
new
CurrentLineHighlightOverlay
(
this
.
_context
,
this
.
layoutProvider
));
contentViewOverlays
.
addDynamicOverlay
(
new
SelectionsOverlay
(
this
.
_context
));
contentViewOverlays
.
addDynamicOverlay
(
new
DecorationsOverlay
(
this
.
_context
));
contentViewOverlays
.
addDynamicOverlay
(
new
IndentGuidesOverlay
(
this
.
_context
));
var
marginViewOverlays
=
new
MarginViewOverlays
(
this
.
_context
,
this
.
layoutProvider
);
let
marginViewOverlays
=
new
MarginViewOverlays
(
this
.
_context
,
this
.
layoutProvider
);
this
.
viewParts
.
push
(
marginViewOverlays
);
marginViewOverlays
.
addDynamicOverlay
(
new
GlyphMarginOverlay
(
this
.
_context
));
marginViewOverlays
.
addDynamicOverlay
(
new
LinesDecorationsOverlay
(
this
.
_context
));
...
...
@@ -252,7 +252,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
this
.
overlayWidgets
=
new
ViewOverlayWidgets
(
this
.
_context
);
this
.
viewParts
.
push
(
this
.
overlayWidgets
);
var
rulers
=
new
Rulers
(
this
.
_context
,
this
.
layoutProvider
);
let
rulers
=
new
Rulers
(
this
.
_context
,
this
.
layoutProvider
);
this
.
viewParts
.
push
(
rulers
);
// -------------- Wire dom nodes up
...
...
@@ -261,7 +261,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
this
.
linesContentContainer
.
style
.
position
=
'
absolute
'
;
if
(
decorationsOverviewRuler
)
{
var
overviewRulerData
=
this
.
layoutProvider
.
getOverviewRulerInsertData
();
let
overviewRulerData
=
this
.
layoutProvider
.
getOverviewRulerInsertData
();
overviewRulerData
.
parent
.
insertBefore
(
decorationsOverviewRuler
.
getDomNode
(),
overviewRulerData
.
insertBefore
);
}
...
...
@@ -377,7 +377,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
throw
new
Error
(
'
ViewImpl.pointerHandler.visibleRangeForPosition2: View is disposed
'
);
}
this
.
_flushAccumulatedAndRenderNow
();
var
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
lineNumber
,
column
,
lineNumber
,
column
),
0
);
let
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
lineNumber
,
column
,
lineNumber
,
column
),
0
);
if
(
!
visibleRanges
)
{
return
null
;
}
...
...
@@ -403,8 +403,8 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
throw
new
Error
(
'
ViewImpl.keyboardHandler.visibleRangeForPositionRelativeToEditor: View is disposed
'
);
}
this
.
_flushAccumulatedAndRenderNow
();
var
linesViewPortData
=
this
.
layoutProvider
.
getLinesViewportData
();
var
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
lineNumber
,
column
,
lineNumber
,
column
),
linesViewPortData
.
visibleRangesDeltaTop
);
let
linesViewPortData
=
this
.
layoutProvider
.
getLinesViewportData
();
let
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
lineNumber
,
column
,
lineNumber
,
column
),
linesViewPortData
.
visibleRangesDeltaTop
);
if
(
!
visibleRanges
)
{
return
null
;
}
...
...
@@ -437,7 +437,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
/* tslint:disable:no-unused-variable */
// Access overflowGuardContainer.clientWidth to prevent relayouting bug in Chrome
// See Bug 19676: Editor misses a layout event
var
clientWidth
=
this
.
overflowGuardContainer
.
clientWidth
+
'
px
'
;
let
clientWidth
=
this
.
overflowGuardContainer
.
clientWidth
+
'
px
'
;
/* tslint:enable:no-unused-variable */
}
StyleMutator
.
setWidth
(
this
.
domNode
,
layoutInfo
.
width
);
...
...
@@ -516,7 +516,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
this
.
viewLines
.
dispose
();
// Destroy IViewPart second
for
(
var
i
=
0
,
len
=
this
.
viewParts
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
this
.
viewParts
.
length
;
i
<
len
;
i
++
)
{
this
.
viewParts
[
i
].
dispose
();
}
this
.
viewParts
=
[];
...
...
@@ -567,11 +567,11 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
if
(
this
.
_isDisposed
)
{
throw
new
Error
(
'
ViewImpl.codeEditorHelper.getVerticalOffsetForPosition: View is disposed
'
);
}
var
modelPosition
=
this
.
_context
.
model
.
validateModelPosition
({
let
modelPosition
=
this
.
_context
.
model
.
validateModelPosition
({
lineNumber
:
modelLineNumber
,
column
:
modelColumn
});
var
viewPosition
=
this
.
_context
.
model
.
convertModelPositionToViewPosition
(
modelPosition
.
lineNumber
,
modelPosition
.
column
);
let
viewPosition
=
this
.
_context
.
model
.
convertModelPositionToViewPosition
(
modelPosition
.
lineNumber
,
modelPosition
.
column
);
return
this
.
layoutProvider
.
getVerticalOffsetForLineNumber
(
viewPosition
.
lineNumber
);
},
delegateVerticalScrollbarMouseDown
:
(
browserEvent
:
MouseEvent
)
=>
{
...
...
@@ -584,13 +584,13 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
if
(
this
.
_isDisposed
)
{
throw
new
Error
(
'
ViewImpl.codeEditorHelper.getOffsetForColumn: View is disposed
'
);
}
var
modelPosition
=
this
.
_context
.
model
.
validateModelPosition
({
let
modelPosition
=
this
.
_context
.
model
.
validateModelPosition
({
lineNumber
:
modelLineNumber
,
column
:
modelColumn
});
var
viewPosition
=
this
.
_context
.
model
.
convertModelPositionToViewPosition
(
modelPosition
.
lineNumber
,
modelPosition
.
column
);
let
viewPosition
=
this
.
_context
.
model
.
convertModelPositionToViewPosition
(
modelPosition
.
lineNumber
,
modelPosition
.
column
);
this
.
_flushAccumulatedAndRenderNow
();
var
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
viewPosition
.
lineNumber
,
viewPosition
.
column
,
viewPosition
.
lineNumber
,
viewPosition
.
column
),
0
);
let
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
viewPosition
.
lineNumber
,
viewPosition
.
column
,
viewPosition
.
lineNumber
,
viewPosition
.
column
),
0
);
if
(
!
visibleRanges
)
{
return
-
1
;
}
...
...
@@ -605,9 +605,9 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
if
(
this
.
_isDisposed
)
{
throw
new
Error
(
'
ViewImpl.getCenteredRangeInViewport: View is disposed
'
);
}
var
viewLineNumber
=
this
.
layoutProvider
.
getCenteredViewLineNumberInViewport
();
var
viewModel
=
this
.
_context
.
model
;
var
currentCenteredViewRange
=
new
Range
(
viewLineNumber
,
1
,
viewLineNumber
,
viewModel
.
getLineMaxColumn
(
viewLineNumber
));
let
viewLineNumber
=
this
.
layoutProvider
.
getCenteredViewLineNumberInViewport
();
let
viewModel
=
this
.
_context
.
model
;
let
currentCenteredViewRange
=
new
Range
(
viewLineNumber
,
1
,
viewLineNumber
,
viewModel
.
getLineMaxColumn
(
viewLineNumber
));
return
viewModel
.
convertViewRangeToModelRange
(
currentCenteredViewRange
);
}
...
...
@@ -676,11 +676,11 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
if
(
this
.
_isDisposed
)
{
throw
new
Error
(
'
ViewImpl.change: View is disposed
'
);
}
var
zonesHaveChanged
=
false
;
let
zonesHaveChanged
=
false
;
this
.
_renderOnce
(()
=>
{
// Handle events to avoid "adjusting" newly inserted view zones
this
.
_flushAnyAccumulatedEvents
();
var
changeAccessor
:
editorBrowser
.
IViewZoneChangeAccessor
=
{
let
changeAccessor
:
editorBrowser
.
IViewZoneChangeAccessor
=
{
addZone
:
(
zone
:
editorBrowser
.
IViewZone
):
number
=>
{
zonesHaveChanged
=
true
;
return
this
.
viewZones
.
addZone
(
zone
);
...
...
@@ -699,7 +699,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
}
};
var
r
:
any
=
safeInvoke1Arg
(
callback
,
changeAccessor
);
let
r
:
any
=
safeInvoke1Arg
(
callback
,
changeAccessor
);
// Invalidate changeAccessor
changeAccessor
.
addZone
=
null
;
...
...
@@ -836,11 +836,11 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
private
createRenderingContext
(
linesViewportData
:
ViewLinesViewportData
):
IRenderingContext
{
var
vInfo
=
this
.
layoutProvider
.
getCurrentViewport
();
let
vInfo
=
this
.
layoutProvider
.
getCurrentViewport
();
var
deltaTop
=
linesViewportData
.
visibleRangesDeltaTop
;
let
deltaTop
=
linesViewportData
.
visibleRangesDeltaTop
;
var
r
:
IRenderingContext
=
{
let
r
:
IRenderingContext
=
{
linesViewportData
:
linesViewportData
,
scrollWidth
:
this
.
layoutProvider
.
getScrollWidth
(),
scrollHeight
:
this
.
layoutProvider
.
getScrollHeight
(),
...
...
@@ -858,8 +858,8 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
},
getViewportVerticalOffsetForLineNumber
:
(
lineNumber
:
number
)
=>
{
var
verticalOffset
=
this
.
layoutProvider
.
getVerticalOffsetForLineNumber
(
lineNumber
);
var
scrolledTop
=
this
.
layoutProvider
.
getScrolledTopFromAbsoluteTop
(
verticalOffset
);
let
verticalOffset
=
this
.
layoutProvider
.
getVerticalOffsetForLineNumber
(
lineNumber
);
let
scrolledTop
=
this
.
layoutProvider
.
getScrolledTopFromAbsoluteTop
(
verticalOffset
);
return
scrolledTop
;
},
...
...
@@ -870,7 +870,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
},
visibleRangeForPosition
:
(
position
:
editorCommon
.
IPosition
)
=>
{
var
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
position
.
lineNumber
,
position
.
column
,
position
.
lineNumber
,
position
.
column
),
deltaTop
);
let
visibleRanges
=
this
.
viewLines
.
visibleRangesForRange2
(
new
Range
(
position
.
lineNumber
,
position
.
column
,
position
.
lineNumber
,
position
.
column
),
deltaTop
);
if
(
!
visibleRanges
)
{
return
null
;
}
...
...
src/vs/editor/browser/view/viewLayer.ts
浏览文件 @
c80de308
...
...
@@ -394,7 +394,7 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
private
_render
(
inContext
:
IRendererContext
<
T
>
,
startLineNumber
:
number
,
stopLineNumber
:
number
,
deltaTop
:
number
[]):
IRendererContext
<
T
>
{
var
ctx
:
IRendererContext
<
T
>
=
{
let
ctx
:
IRendererContext
<
T
>
=
{
domNode
:
inContext
.
domNode
,
rendLineNumberStart
:
inContext
.
rendLineNumberStart
,
lines
:
inContext
.
lines
.
slice
(
0
),
...
...
@@ -406,9 +406,9 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
scrollDomNodeIsAbove
:
inContext
.
scrollDomNodeIsAbove
};
var
canRemoveScrollDomNode
=
true
;
let
canRemoveScrollDomNode
=
true
;
if
(
ctx
.
scrollDomNode
)
{
var
time
=
this
.
_getScrollDomNodeTime
(
ctx
.
scrollDomNode
);
let
time
=
this
.
_getScrollDomNodeTime
(
ctx
.
scrollDomNode
);
if
((
new
Date
()).
getTime
()
-
time
<
1000
)
{
canRemoveScrollDomNode
=
false
;
}
...
...
@@ -419,7 +419,7 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
ctx
.
rendLineNumberStart
=
startLineNumber
;
ctx
.
linesLength
=
stopLineNumber
-
startLineNumber
+
1
;
ctx
.
lines
=
[];
for
(
var
x
=
startLineNumber
;
x
<=
stopLineNumber
;
x
++
)
{
for
(
let
x
=
startLineNumber
;
x
<=
stopLineNumber
;
x
++
)
{
ctx
.
lines
[
x
-
startLineNumber
]
=
this
.
_createLine
();
}
this
.
_finishRendering
(
ctx
,
true
,
deltaTop
);
...
...
@@ -436,14 +436,10 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
startLineNumber
);
var
fromLineNumber
:
number
,
toLineNumber
:
number
,
removeCnt
:
number
;
if
(
ctx
.
rendLineNumberStart
>
startLineNumber
)
{
// Insert lines before
fromLineNumber
=
startLineNumber
;
toLineNumber
=
Math
.
min
(
stopLineNumber
,
ctx
.
rendLineNumberStart
-
1
);
let
fromLineNumber
=
startLineNumber
;
let
toLineNumber
=
Math
.
min
(
stopLineNumber
,
ctx
.
rendLineNumberStart
-
1
);
if
(
fromLineNumber
<=
toLineNumber
)
{
this
.
_insertLinesBefore
(
ctx
,
fromLineNumber
,
toLineNumber
,
deltaTop
,
startLineNumber
);
ctx
.
linesLength
+=
toLineNumber
-
fromLineNumber
+
1
;
...
...
@@ -458,7 +454,7 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
}
else
if
(
ctx
.
rendLineNumberStart
<
startLineNumber
)
{
// Remove lines before
removeCnt
=
Math
.
min
(
ctx
.
linesLength
,
startLineNumber
-
ctx
.
rendLineNumberStart
);
let
removeCnt
=
Math
.
min
(
ctx
.
linesLength
,
startLineNumber
-
ctx
.
rendLineNumberStart
);
if
(
removeCnt
>
0
)
{
this
.
_removeLinesBefore
(
ctx
,
removeCnt
);
ctx
.
linesLength
-=
removeCnt
;
...
...
@@ -469,8 +465,8 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
if
(
ctx
.
rendLineNumberStart
+
ctx
.
linesLength
-
1
<
stopLineNumber
)
{
// Insert lines after
fromLineNumber
=
ctx
.
rendLineNumberStart
+
ctx
.
linesLength
;
toLineNumber
=
stopLineNumber
;
let
fromLineNumber
=
ctx
.
rendLineNumberStart
+
ctx
.
linesLength
;
let
toLineNumber
=
stopLineNumber
;
if
(
fromLineNumber
<=
toLineNumber
)
{
this
.
_insertLinesAfter
(
ctx
,
fromLineNumber
,
toLineNumber
,
deltaTop
,
startLineNumber
);
...
...
@@ -487,9 +483,9 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
else
if
(
ctx
.
rendLineNumberStart
+
ctx
.
linesLength
-
1
>
stopLineNumber
)
{
// Remove lines after
fromLineNumber
=
Math
.
max
(
0
,
stopLineNumber
-
ctx
.
rendLineNumberStart
+
1
);
toLineNumber
=
ctx
.
linesLength
-
1
;
removeCnt
=
toLineNumber
-
fromLineNumber
+
1
;
let
fromLineNumber
=
Math
.
max
(
0
,
stopLineNumber
-
ctx
.
rendLineNumberStart
+
1
);
let
toLineNumber
=
ctx
.
linesLength
-
1
;
let
removeCnt
=
toLineNumber
-
fromLineNumber
+
1
;
if
(
removeCnt
>
0
)
{
this
.
_removeLinesAfter
(
ctx
,
removeCnt
);
...
...
@@ -503,12 +499,9 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
private
_renderUntouchedLines
(
ctx
:
IRendererContext
<
T
>
,
startIndex
:
number
,
endIndex
:
number
,
deltaTop
:
number
[],
deltaLN
:
number
):
void
{
var
i
:
number
,
lineNumber
:
number
;
for
(
i
=
startIndex
;
i
<=
endIndex
;
i
++
)
{
lineNumber
=
ctx
.
rendLineNumberStart
+
i
;
var
lineDomNode
=
ctx
.
lines
[
i
].
getDomNode
();
for
(
let
i
=
startIndex
;
i
<=
endIndex
;
i
++
)
{
let
lineNumber
=
ctx
.
rendLineNumberStart
+
i
;
let
lineDomNode
=
ctx
.
lines
[
i
].
getDomNode
();
if
(
lineDomNode
)
{
ctx
.
lines
[
i
].
layoutLine
(
lineNumber
,
deltaTop
[
lineNumber
-
deltaLN
]);
}
...
...
@@ -516,19 +509,16 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
private
_insertLinesBefore
(
ctx
:
IRendererContext
<
T
>
,
fromLineNumber
:
number
,
toLineNumber
:
number
,
deltaTop
:
number
[],
deltaLN
:
number
):
void
{
var
newLines
:
T
[]
=
[],
line
:
T
,
lineNumber
:
number
;
for
(
lineNumber
=
fromLineNumber
;
lineNumber
<=
toLineNumber
;
lineNumber
++
)
{
line
=
this
.
_createLine
();
newLines
.
push
(
line
);
let
newLines
:
T
[]
=
[];
let
newLinesLen
=
0
;
for
(
let
lineNumber
=
fromLineNumber
;
lineNumber
<=
toLineNumber
;
lineNumber
++
)
{
newLines
[
newLinesLen
++
]
=
this
.
_createLine
();
}
ctx
.
lines
=
newLines
.
concat
(
ctx
.
lines
);
}
private
_getScrollDomNodeTime
(
domNode
:
HTMLElement
):
number
{
var
lastScrollTime
=
domNode
.
getAttribute
(
'
last-scroll-time
'
);
let
lastScrollTime
=
domNode
.
getAttribute
(
'
last-scroll-time
'
);
if
(
lastScrollTime
)
{
return
parseInt
(
lastScrollTime
,
10
);
}
...
...
@@ -536,14 +526,14 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
private
_removeIfNotScrollDomNode
(
ctx
:
IRendererContext
<
T
>
,
domNode
:
HTMLElement
,
isAbove
:
boolean
)
{
var
time
=
this
.
_getScrollDomNodeTime
(
domNode
);
let
time
=
this
.
_getScrollDomNodeTime
(
domNode
);
if
(
!
time
)
{
ctx
.
domNode
.
removeChild
(
domNode
);
return
;
}
if
(
ctx
.
scrollDomNode
)
{
var
otherTime
=
this
.
_getScrollDomNodeTime
(
ctx
.
scrollDomNode
);
let
otherTime
=
this
.
_getScrollDomNodeTime
(
ctx
.
scrollDomNode
);
if
(
otherTime
>
time
)
{
// The other is the real scroll dom node
ctx
.
domNode
.
removeChild
(
domNode
);
...
...
@@ -562,10 +552,8 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
private
_removeLinesBefore
(
ctx
:
IRendererContext
<
T
>
,
removeCount
:
number
):
void
{
var
i
:
number
;
for
(
i
=
0
;
i
<
removeCount
;
i
++
)
{
var
lineDomNode
=
ctx
.
lines
[
i
].
getDomNode
();
for
(
let
i
=
0
;
i
<
removeCount
;
i
++
)
{
let
lineDomNode
=
ctx
.
lines
[
i
].
getDomNode
();
if
(
lineDomNode
)
{
this
.
_removeIfNotScrollDomNode
(
ctx
,
lineDomNode
,
true
);
}
...
...
@@ -574,23 +562,19 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
private
_insertLinesAfter
(
ctx
:
IRendererContext
<
T
>
,
fromLineNumber
:
number
,
toLineNumber
:
number
,
deltaTop
:
number
[],
deltaLN
:
number
):
void
{
var
newLines
:
T
[]
=
[],
line
:
T
,
lineNumber
:
number
;
for
(
lineNumber
=
fromLineNumber
;
lineNumber
<=
toLineNumber
;
lineNumber
++
)
{
line
=
this
.
_createLine
();
newLines
.
push
(
line
);
let
newLines
:
T
[]
=
[];
let
newLinesLen
=
0
;
for
(
let
lineNumber
=
fromLineNumber
;
lineNumber
<=
toLineNumber
;
lineNumber
++
)
{
newLines
[
newLinesLen
++
]
=
this
.
_createLine
();
}
ctx
.
lines
=
ctx
.
lines
.
concat
(
newLines
);
}
private
_removeLinesAfter
(
ctx
:
IRendererContext
<
T
>
,
removeCount
:
number
):
void
{
var
i
:
number
,
removeIndex
=
ctx
.
linesLength
-
removeCount
;
let
removeIndex
=
ctx
.
linesLength
-
removeCount
;
for
(
i
=
0
;
i
<
removeCount
;
i
++
)
{
var
lineDomNode
=
ctx
.
lines
[
removeIndex
+
i
].
getDomNode
();
for
(
let
i
=
0
;
i
<
removeCount
;
i
++
)
{
let
lineDomNode
=
ctx
.
lines
[
removeIndex
+
i
].
getDomNode
();
if
(
lineDomNode
)
{
this
.
_removeIfNotScrollDomNode
(
ctx
,
lineDomNode
,
false
);
}
...
...
@@ -608,14 +592,14 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
private
_finishRenderingNewLines
(
ctx
:
IRendererContext
<
T
>
,
domNodeIsEmpty
:
boolean
,
newLinesHTML
:
string
[],
wasNew
:
boolean
[]):
void
{
var
lastChild
=
<
HTMLElement
>
ctx
.
domNode
.
lastChild
;
let
lastChild
=
<
HTMLElement
>
ctx
.
domNode
.
lastChild
;
if
(
domNodeIsEmpty
||
!
lastChild
)
{
ctx
.
domNode
.
innerHTML
=
this
.
_extraDomNodeHTML
()
+
newLinesHTML
.
join
(
''
);
}
else
{
lastChild
.
insertAdjacentHTML
(
'
afterend
'
,
newLinesHTML
.
join
(
''
));
}
var
currChild
=
<
HTMLElement
>
ctx
.
domNode
.
lastChild
;
let
currChild
=
<
HTMLElement
>
ctx
.
domNode
.
lastChild
;
for
(
let
i
=
ctx
.
linesLength
-
1
;
i
>=
0
;
i
--
)
{
let
line
=
ctx
.
lines
[
i
];
if
(
wasNew
[
i
])
{
...
...
@@ -626,17 +610,15 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
}
private
_finishRenderingInvalidLines
(
ctx
:
IRendererContext
<
T
>
,
invalidLinesHTML
:
string
[],
wasInvalid
:
boolean
[]):
void
{
var
hugeDomNode
=
document
.
createElement
(
'
div
'
);
let
hugeDomNode
=
document
.
createElement
(
'
div
'
);
hugeDomNode
.
innerHTML
=
invalidLinesHTML
.
join
(
''
);
var
lineDomNode
:
HTMLElement
,
source
:
HTMLElement
;
for
(
let
i
=
0
;
i
<
ctx
.
linesLength
;
i
++
)
{
let
line
=
ctx
.
lines
[
i
];
if
(
wasInvalid
[
i
])
{
source
=
<
HTMLElement
>
hugeDomNode
.
firstChild
;
lineDomNode
=
line
.
getDomNode
();
let
source
=
<
HTMLElement
>
hugeDomNode
.
firstChild
;
l
et
l
ineDomNode
=
line
.
getDomNode
();
lineDomNode
.
parentNode
.
replaceChild
(
source
,
lineDomNode
);
line
.
setDomNode
(
source
);
}
...
...
@@ -647,23 +629,19 @@ class ViewLayerRenderer<T extends IVisibleLineData> {
let
inlineDecorations
=
ViewLayerRenderer
.
_resolveInlineDecorations
(
ctx
);
var
i
:
number
,
len
:
number
,
line
:
IVisibleLineData
,
lineNumber
:
number
,
hadNewLine
=
false
,
wasNew
:
boolean
[]
=
[],
newLinesHTML
:
string
[]
=
[],
hadInvalidLine
=
false
,
wasInvalid
:
boolean
[]
=
[],
invalidLinesHTML
:
string
[]
=
[];
for
(
i
=
0
,
len
=
ctx
.
linesLength
;
i
<
len
;
i
++
)
{
line
=
ctx
.
lines
[
i
];
lineNumber
=
i
+
ctx
.
rendLineNumberStart
;
let
hadNewLine
=
false
;
let
wasNew
:
boolean
[]
=
[];
let
newLinesHTML
:
string
[]
=
[];
let
hadInvalidLine
=
false
;
let
wasInvalid
:
boolean
[]
=
[];
let
invalidLinesHTML
:
string
[]
=
[];
for
(
let
i
=
0
,
len
=
ctx
.
linesLength
;
i
<
len
;
i
++
)
{
let
line
=
ctx
.
lines
[
i
];
let
lineNumber
=
i
+
ctx
.
rendLineNumberStart
;
if
(
line
.
shouldUpdateHTML
(
ctx
.
rendLineNumberStart
,
lineNumber
,
inlineDecorations
[
i
]))
{
var
lineDomNode
=
line
.
getDomNode
();
let
lineDomNode
=
line
.
getDomNode
();
if
(
!
lineDomNode
)
{
// Line is new
line
.
getLineOuterHTML
(
newLinesHTML
,
lineNumber
,
deltaTop
[
i
]);
...
...
src/vs/editor/browser/view/viewOverlays.ts
浏览文件 @
c80de308
...
...
@@ -75,8 +75,7 @@ export class ViewOverlays extends ViewLayer<ViewOverlayLine> {
// ----- end event handlers
_createLine
():
ViewOverlayLine
{
var
r
=
new
ViewOverlayLine
(
this
.
_context
,
this
.
_dynamicOverlays
);
return
r
;
return
new
ViewOverlayLine
(
this
.
_context
,
this
.
_dynamicOverlays
);
}
...
...
@@ -285,18 +284,18 @@ export class MarginViewOverlays extends ViewOverlays {
_viewOverlaysRender
(
ctx
:
IRestrictedRenderingContext
):
void
{
super
.
_viewOverlaysRender
(
ctx
);
if
(
this
.
_canUseTranslate3d
)
{
var
transform
=
'
translate3d(0px,
'
+
ctx
.
linesViewportData
.
visibleRangesDeltaTop
+
'
px, 0px)
'
;
let
transform
=
'
translate3d(0px,
'
+
ctx
.
linesViewportData
.
visibleRangesDeltaTop
+
'
px, 0px)
'
;
this
.
domNode
.
setTransform
(
transform
);
this
.
domNode
.
setTop
(
0
);
}
else
{
this
.
domNode
.
setTransform
(
''
);
this
.
domNode
.
setTop
(
ctx
.
linesViewportData
.
visibleRangesDeltaTop
);
}
var
height
=
Math
.
min
(
this
.
_layoutProvider
.
getTotalHeight
(),
1000000
);
let
height
=
Math
.
min
(
this
.
_layoutProvider
.
getTotalHeight
(),
1000000
);
this
.
domNode
.
setHeight
(
height
);
this
.
domNode
.
setWidth
(
this
.
_contentLeft
);
var
glyphMargin
=
this
.
_getGlyphMarginDomNode
();
let
glyphMargin
=
this
.
_getGlyphMarginDomNode
();
if
(
glyphMargin
)
{
StyleMutator
.
setHeight
(
glyphMargin
,
this
.
_scrollHeight
);
StyleMutator
.
setLeft
(
glyphMargin
,
this
.
_glyphMarginLeft
);
...
...
src/vs/editor/browser/viewLayout/layoutProvider.ts
浏览文件 @
c80de308
...
...
@@ -202,7 +202,7 @@ export class LayoutProvider extends ViewEventHandler implements IDisposable, ILa
}
private
_computeScrollWidth
(
maxLineWidth
:
number
,
viewportWidth
:
number
):
number
{
var
isViewportWrapping
=
this
.
configuration
.
editor
.
wrappingInfo
.
isViewportWrapping
;
let
isViewportWrapping
=
this
.
configuration
.
editor
.
wrappingInfo
.
isViewportWrapping
;
if
(
!
isViewportWrapping
)
{
return
Math
.
max
(
maxLineWidth
+
LayoutProvider
.
LINES_HORIZONTAL_EXTRA_PX
,
viewportWidth
);
}
...
...
@@ -210,7 +210,7 @@ export class LayoutProvider extends ViewEventHandler implements IDisposable, ILa
}
public
onMaxLineWidthChanged
(
maxLineWidth
:
number
):
void
{
var
newScrollWidth
=
this
.
_computeScrollWidth
(
maxLineWidth
,
this
.
getCurrentViewport
().
width
);
let
newScrollWidth
=
this
.
_computeScrollWidth
(
maxLineWidth
,
this
.
getCurrentViewport
().
width
);
this
.
scrollManager
.
setScrollWidth
(
newScrollWidth
);
// The height might depend on the fact that there is a horizontal scrollbar or not
...
...
@@ -220,9 +220,9 @@ export class LayoutProvider extends ViewEventHandler implements IDisposable, ILa
// ---- view state
public
saveState
():
editorCommon
.
IViewState
{
var
scrollTop
=
this
.
scrollManager
.
getScrollTop
();
var
firstLineNumberInViewport
=
this
.
linesLayout
.
getLineNumberAtOrAfterVerticalOffset
(
scrollTop
);
var
whitespaceAboveFirstLine
=
this
.
linesLayout
.
getWhitespaceAccumulatedHeightBeforeLineNumber
(
firstLineNumberInViewport
);
let
scrollTop
=
this
.
scrollManager
.
getScrollTop
();
let
firstLineNumberInViewport
=
this
.
linesLayout
.
getLineNumberAtOrAfterVerticalOffset
(
scrollTop
);
let
whitespaceAboveFirstLine
=
this
.
linesLayout
.
getWhitespaceAccumulatedHeightBeforeLineNumber
(
firstLineNumberInViewport
);
return
{
scrollTop
:
scrollTop
,
scrollTopWithoutViewZones
:
scrollTop
-
whitespaceAboveFirstLine
,
...
...
@@ -231,7 +231,7 @@ export class LayoutProvider extends ViewEventHandler implements IDisposable, ILa
}
public
restoreState
(
state
:
editorCommon
.
IViewState
):
void
{
var
restoreScrollTop
=
state
.
scrollTop
;
let
restoreScrollTop
=
state
.
scrollTop
;
if
(
typeof
state
.
scrollTopWithoutViewZones
===
'
number
'
&&
!
this
.
linesLayout
.
hasWhitespace
())
{
restoreScrollTop
=
state
.
scrollTopWithoutViewZones
;
}
...
...
@@ -265,7 +265,7 @@ export class LayoutProvider extends ViewEventHandler implements IDisposable, ILa
return
this
.
linesLayout
.
getLineNumberAtOrAfterVerticalOffset
(
verticalOffset
);
}
public
getTotalHeight
():
number
{
var
reserveHorizontalScrollbarHeight
=
0
;
let
reserveHorizontalScrollbarHeight
=
0
;
if
(
this
.
scrollManager
.
getScrollWidth
()
>
this
.
scrollManager
.
getWidth
())
{
reserveHorizontalScrollbarHeight
=
this
.
configuration
.
editor
.
viewInfo
.
scrollbar
.
horizontalScrollbarSize
;
}
...
...
@@ -287,7 +287,7 @@ export class LayoutProvider extends ViewEventHandler implements IDisposable, ILa
// ---- IScrollingProvider
public
getOverviewRulerInsertData
():
{
parent
:
HTMLElement
;
insertBefore
:
HTMLElement
;
}
{
var
layoutInfo
=
this
.
scrollManager
.
getOverviewRulerLayoutInfo
();
let
layoutInfo
=
this
.
scrollManager
.
getOverviewRulerLayoutInfo
();
return
{
parent
:
layoutInfo
.
parent
,
insertBefore
:
layoutInfo
.
insertBefore
...
...
src/vs/editor/browser/viewLayout/scrollManager.ts
浏览文件 @
c80de308
...
...
@@ -33,9 +33,9 @@ export class ScrollManager implements IDisposable {
this
.
privateViewEventBus
=
privateViewEventBus
;
this
.
linesContent
=
linesContent
;
var
configScrollbarOpts
=
this
.
configuration
.
editor
.
viewInfo
.
scrollbar
;
let
configScrollbarOpts
=
this
.
configuration
.
editor
.
viewInfo
.
scrollbar
;
var
scrollbarOptions
:
ScrollableElementCreationOptions
=
{
let
scrollbarOptions
:
ScrollableElementCreationOptions
=
{
canUseTranslate3d
:
this
.
configuration
.
editor
.
viewInfo
.
canUseTranslate3d
,
listenOnDomNode
:
viewDomNode
,
vertical
:
configScrollbarOpts
.
vertical
,
...
...
@@ -78,11 +78,11 @@ export class ScrollManager implements IDisposable {
// the browser will try desperately to reveal that dom node, unexpectedly
// changing the .scrollTop of this.linesContent
var
onBrowserDesperateReveal
=
(
domNode
:
HTMLElement
,
lookAtScrollTop
:
boolean
,
lookAtScrollLeft
:
boolean
)
=>
{
let
onBrowserDesperateReveal
=
(
domNode
:
HTMLElement
,
lookAtScrollTop
:
boolean
,
lookAtScrollLeft
:
boolean
)
=>
{
let
newScrollPosition
:
INewScrollPosition
=
{};
if
(
lookAtScrollTop
)
{
var
deltaTop
=
domNode
.
scrollTop
;
let
deltaTop
=
domNode
.
scrollTop
;
if
(
deltaTop
)
{
newScrollPosition
.
scrollTop
=
this
.
getScrollTop
()
+
deltaTop
;
domNode
.
scrollTop
=
0
;
...
...
@@ -90,7 +90,7 @@ export class ScrollManager implements IDisposable {
}
if
(
lookAtScrollLeft
)
{
var
deltaLeft
=
domNode
.
scrollLeft
;
let
deltaLeft
=
domNode
.
scrollLeft
;
if
(
deltaLeft
)
{
newScrollPosition
.
scrollLeft
=
this
.
getScrollLeft
()
+
deltaLeft
;
domNode
.
scrollLeft
=
0
;
...
...
src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts
浏览文件 @
c80de308
...
...
@@ -63,7 +63,7 @@ export class CurrentLineHighlightOverlay extends DynamicViewOverlay {
return
true
;
}
public
onCursorPositionChanged
(
e
:
editorCommon
.
IViewCursorPositionChangedEvent
):
boolean
{
var
hasChanged
=
false
;
let
hasChanged
=
false
;
if
(
this
.
_primaryCursorIsInEditableRange
!==
e
.
isInEditableRange
)
{
this
.
_primaryCursorIsInEditableRange
=
e
.
isInEditableRange
;
hasChanged
=
true
;
...
...
@@ -75,7 +75,7 @@ export class CurrentLineHighlightOverlay extends DynamicViewOverlay {
return
hasChanged
;
}
public
onCursorSelectionChanged
(
e
:
editorCommon
.
IViewCursorSelectionChangedEvent
):
boolean
{
var
isEmpty
=
e
.
selection
.
isEmpty
();
let
isEmpty
=
e
.
selection
.
isEmpty
();
if
(
this
.
_selectionIsEmpty
!==
isEmpty
)
{
this
.
_selectionIsEmpty
=
isEmpty
;
return
true
;
...
...
src/vs/editor/browser/viewParts/lines/viewLines.ts
浏览文件 @
c80de308
...
...
@@ -108,7 +108,7 @@ export class ViewLines extends ViewLayer<ViewLine> {
// ---- begin view event handlers
public
onConfigurationChanged
(
e
:
editorCommon
.
IConfigurationChangedEvent
):
boolean
{
var
shouldRender
=
super
.
onConfigurationChanged
(
e
);
let
shouldRender
=
super
.
onConfigurationChanged
(
e
);
if
(
e
.
wrappingInfo
)
{
this
.
_maxLineWidth
=
0
;
}
...
...
@@ -133,13 +133,13 @@ export class ViewLines extends ViewLayer<ViewLine> {
}
public
onLayoutChanged
(
layoutInfo
:
editorCommon
.
EditorLayoutInfo
):
boolean
{
var
shouldRender
=
super
.
onLayoutChanged
(
layoutInfo
);
let
shouldRender
=
super
.
onLayoutChanged
(
layoutInfo
);
this
.
_maxLineWidth
=
0
;
return
shouldRender
;
}
public
onModelFlushed
():
boolean
{
var
shouldRender
=
super
.
onModelFlushed
();
let
shouldRender
=
super
.
onModelFlushed
();
this
.
_maxLineWidth
=
0
;
return
shouldRender
;
}
...
...
@@ -157,7 +157,7 @@ export class ViewLines extends ViewLayer<ViewLine> {
}
public
onCursorRevealRange
(
e
:
editorCommon
.
IViewRevealRangeEvent
):
boolean
{
var
newScrollTop
=
this
.
_computeScrollTopToRevealRange
(
this
.
_layoutProvider
.
getCurrentViewport
(),
e
.
range
,
e
.
verticalType
);
let
newScrollTop
=
this
.
_computeScrollTopToRevealRange
(
this
.
_layoutProvider
.
getCurrentViewport
(),
e
.
range
,
e
.
verticalType
);
if
(
e
.
revealHorizontal
)
{
this
.
_lastCursorRevealRangeHorizontallyEvent
=
e
;
...
...
@@ -403,9 +403,9 @@ export class ViewLines extends ViewLayer<ViewLine> {
this
.
onDidRender
();
// compute new scroll position
var
newScrollLeft
=
this
.
_computeScrollLeftToRevealRange
(
revealHorizontalRange
);
let
newScrollLeft
=
this
.
_computeScrollLeftToRevealRange
(
revealHorizontalRange
);
var
isViewportWrapping
=
this
.
_isViewportWrapping
;
let
isViewportWrapping
=
this
.
_isViewportWrapping
;
if
(
!
isViewportWrapping
)
{
// ensure `scrollWidth` is large enough
this
.
_ensureMaxLineWidth
(
newScrollLeft
.
maxHorizontalOffset
);
...
...
@@ -444,11 +444,11 @@ export class ViewLines extends ViewLayer<ViewLine> {
}
private
_computeScrollTopToRevealRange
(
viewport
:
editorCommon
.
Viewport
,
range
:
Range
,
verticalType
:
editorCommon
.
VerticalRevealType
):
number
{
var
viewportStartY
=
viewport
.
top
,
viewportHeight
=
viewport
.
height
,
viewportEndY
=
viewportStartY
+
viewportHeight
,
boxStartY
:
number
,
boxEndY
:
number
;
let
viewportStartY
=
viewport
.
top
;
let
viewportHeight
=
viewport
.
height
;
let
viewportEndY
=
viewportStartY
+
viewportHeight
;
let
boxStartY
:
number
;
let
boxEndY
:
number
;
// Have a box that includes one extra line height (for the horizontal scrollbar)
boxStartY
=
this
.
_layoutProvider
.
getVerticalOffsetForLineNumber
(
range
.
startLineNumber
);
...
...
@@ -458,7 +458,7 @@ export class ViewLines extends ViewLayer<ViewLine> {
boxEndY
+=
this
.
_lineHeight
;
}
var
newScrollTop
:
number
;
let
newScrollTop
:
number
;
if
(
verticalType
===
editorCommon
.
VerticalRevealType
.
Center
||
verticalType
===
editorCommon
.
VerticalRevealType
.
CenterIfOutsideViewport
)
{
if
(
verticalType
===
editorCommon
.
VerticalRevealType
.
CenterIfOutsideViewport
&&
viewportStartY
<=
boxStartY
&&
boxEndY
<=
viewportEndY
)
{
...
...
@@ -466,7 +466,7 @@ export class ViewLines extends ViewLayer<ViewLine> {
newScrollTop
=
viewportStartY
;
}
else
{
// Box is outside the viewport... center it
var
boxMiddleY
=
(
boxStartY
+
boxEndY
)
/
2
;
let
boxMiddleY
=
(
boxStartY
+
boxEndY
)
/
2
;
newScrollTop
=
Math
.
max
(
0
,
boxMiddleY
-
viewportHeight
/
2
);
}
}
else
{
...
...
@@ -478,7 +478,7 @@ export class ViewLines extends ViewLayer<ViewLine> {
private
_computeScrollLeftToRevealRange
(
range
:
Range
):
{
scrollLeft
:
number
;
maxHorizontalOffset
:
number
;
}
{
var
maxHorizontalOffset
=
0
;
let
maxHorizontalOffset
=
0
;
if
(
range
.
startLineNumber
!==
range
.
endLineNumber
)
{
// Two or more lines? => scroll to base (That's how you see most of the two lines)
...
...
@@ -488,13 +488,13 @@ export class ViewLines extends ViewLayer<ViewLine> {
};
}
var
viewport
=
this
.
_layoutProvider
.
getCurrentViewport
(),
viewportStartX
=
viewport
.
left
,
viewportEndX
=
viewportStartX
+
viewport
.
width
;
let
viewport
=
this
.
_layoutProvider
.
getCurrentViewport
();
let
viewportStartX
=
viewport
.
left
;
let
viewportEndX
=
viewportStartX
+
viewport
.
width
;
var
visibleRanges
=
this
.
visibleRangesForRange2
(
range
,
0
),
boxStartX
=
Number
.
MAX_VALUE
,
boxEndX
=
0
;
let
visibleRanges
=
this
.
visibleRangesForRange2
(
range
,
0
);
let
boxStartX
=
Number
.
MAX_VALUE
;
let
boxEndX
=
0
;
if
(
!
visibleRanges
)
{
// Unknown
...
...
@@ -504,11 +504,8 @@ export class ViewLines extends ViewLayer<ViewLine> {
};
}
var
i
:
number
,
visibleRange
:
VisibleRange
;
for
(
i
=
0
;
i
<
visibleRanges
.
length
;
i
++
)
{
visibleRange
=
visibleRanges
[
i
];
for
(
let
i
=
0
;
i
<
visibleRanges
.
length
;
i
++
)
{
let
visibleRange
=
visibleRanges
[
i
];
if
(
visibleRange
.
left
<
boxStartX
)
{
boxStartX
=
visibleRange
.
left
;
}
...
...
@@ -522,7 +519,7 @@ export class ViewLines extends ViewLayer<ViewLine> {
boxStartX
=
Math
.
max
(
0
,
boxStartX
-
ViewLines
.
HORIZONTAL_EXTRA_PX
);
boxEndX
+=
this
.
_revealHorizontalRightPadding
;
var
newScrollLeft
=
this
.
_computeMinimumScrolling
(
viewportStartX
,
viewportEndX
,
boxStartX
,
boxEndX
);
let
newScrollLeft
=
this
.
_computeMinimumScrolling
(
viewportStartX
,
viewportEndX
,
boxStartX
,
boxEndX
);
return
{
scrollLeft
:
newScrollLeft
,
maxHorizontalOffset
:
maxHorizontalOffset
...
...
src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts
浏览文件 @
c80de308
...
...
@@ -69,7 +69,7 @@ export class ViewOverlayWidgets extends ViewPart {
};
// This is sync because a widget wants to be in the dom
var
domNode
=
widget
.
getDomNode
();
let
domNode
=
widget
.
getDomNode
();
domNode
.
style
.
position
=
'
absolute
'
;
domNode
.
setAttribute
(
'
widgetId
'
,
widget
.
getId
());
this
.
domNode
.
appendChild
(
domNode
);
...
...
@@ -78,7 +78,7 @@ export class ViewOverlayWidgets extends ViewPart {
}
public
setWidgetPosition
(
widget
:
IOverlayWidget
,
preference
:
OverlayWidgetPositionPreference
):
boolean
{
var
widgetData
=
this
.
_widgets
[
widget
.
getId
()];
let
widgetData
=
this
.
_widgets
[
widget
.
getId
()];
if
(
widgetData
.
preference
===
preference
)
{
return
false
;
}
...
...
@@ -90,10 +90,10 @@ export class ViewOverlayWidgets extends ViewPart {
}
public
removeWidget
(
widget
:
IOverlayWidget
):
void
{
var
widgetId
=
widget
.
getId
();
let
widgetId
=
widget
.
getId
();
if
(
this
.
_widgets
.
hasOwnProperty
(
widgetId
))
{
var
widgetData
=
this
.
_widgets
[
widgetId
];
var
domNode
=
widgetData
.
widget
.
getDomNode
();
let
widgetData
=
this
.
_widgets
[
widgetId
];
let
domNode
=
widgetData
.
widget
.
getDomNode
();
delete
this
.
_widgets
[
widgetId
];
domNode
.
parentNode
.
removeChild
(
domNode
);
...
...
@@ -102,12 +102,12 @@ export class ViewOverlayWidgets extends ViewPart {
}
private
_renderWidget
(
widgetData
:
IWidgetData
):
void
{
var
_RESTORE_STYLE_TOP
=
'
data-editor-restoreStyleTop
'
,
domNode
=
widgetData
.
widget
.
getDomNode
();
let
_RESTORE_STYLE_TOP
=
'
data-editor-restoreStyleTop
'
;
let
domNode
=
widgetData
.
widget
.
getDomNode
();
if
(
widgetData
.
preference
===
null
)
{
if
(
domNode
.
hasAttribute
(
_RESTORE_STYLE_TOP
))
{
var
previousTop
=
domNode
.
getAttribute
(
_RESTORE_STYLE_TOP
);
let
previousTop
=
domNode
.
getAttribute
(
_RESTORE_STYLE_TOP
);
domNode
.
removeAttribute
(
_RESTORE_STYLE_TOP
);
domNode
.
style
.
top
=
previousTop
;
}
...
...
@@ -124,7 +124,7 @@ export class ViewOverlayWidgets extends ViewPart {
if
(
!
domNode
.
hasAttribute
(
_RESTORE_STYLE_TOP
))
{
domNode
.
setAttribute
(
_RESTORE_STYLE_TOP
,
domNode
.
style
.
top
);
}
var
widgetHeight
=
domNode
.
clientHeight
;
let
widgetHeight
=
domNode
.
clientHeight
;
StyleMutator
.
setTop
(
domNode
,
(
this
.
_editorHeight
-
widgetHeight
-
2
*
this
.
_horizontalScrollbarHeight
));
StyleMutator
.
setRight
(
domNode
,
(
2
*
this
.
_verticalScrollbarWidth
));
}
else
if
(
widgetData
.
preference
===
OverlayWidgetPositionPreference
.
TOP_CENTER
)
{
...
...
src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts
浏览文件 @
c80de308
...
...
@@ -72,10 +72,10 @@ export class DecorationsOverviewRuler extends ViewPart {
}
public
onConfigurationChanged
(
e
:
editorCommon
.
IConfigurationChangedEvent
):
boolean
{
var
prevLanesCount
=
this
.
_overviewRuler
.
getLanesCount
();
var
newLanesCount
=
this
.
_context
.
configuration
.
editor
.
viewInfo
.
overviewRulerLanes
;
let
prevLanesCount
=
this
.
_overviewRuler
.
getLanesCount
();
let
newLanesCount
=
this
.
_context
.
configuration
.
editor
.
viewInfo
.
overviewRulerLanes
;
var
shouldRender
=
false
;
let
shouldRender
=
false
;
if
(
e
.
lineHeight
)
{
this
.
_overviewRuler
.
setLineHeight
(
this
.
_context
.
configuration
.
editor
.
lineHeight
,
false
);
...
...
@@ -202,17 +202,17 @@ export class DecorationsOverviewRuler extends ViewPart {
}
}
var
allZones
:
editorCommon
.
OverviewRulerZone
[]
=
[];
let
allZones
:
editorCommon
.
OverviewRulerZone
[]
=
[];
allZones
=
allZones
.
concat
(
this
.
_zonesFromCursors
);
allZones
=
allZones
.
concat
(
this
.
_zonesFromDecorations
);
this
.
_overviewRuler
.
setZones
(
allZones
,
false
);
}
var
hasRendered
=
this
.
_overviewRuler
.
render
(
false
);
let
hasRendered
=
this
.
_overviewRuler
.
render
(
false
);
if
(
hasRendered
&&
OverviewRulerImpl
.
hasCanvas
&&
this
.
_overviewRuler
.
getLanesCount
()
>
0
&&
(
this
.
_zonesFromDecorations
.
length
>
0
||
this
.
_zonesFromCursors
.
length
>
0
))
{
var
ctx2
=
this
.
_overviewRuler
.
getDomNode
().
getContext
(
'
2d
'
);
let
ctx2
=
this
.
_overviewRuler
.
getDomNode
().
getContext
(
'
2d
'
);
ctx2
.
beginPath
();
ctx2
.
lineWidth
=
1
;
ctx2
.
strokeStyle
=
'
rgba(197,197,197,0.8)
'
;
...
...
src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts
浏览文件 @
c80de308
...
...
@@ -33,7 +33,7 @@ export class ScrollDecorationViewPart extends ViewPart {
}
private
_updateShouldShow
():
boolean
{
var
newShouldShow
=
(
this
.
_useShadows
&&
this
.
_scrollTop
>
0
);
let
newShouldShow
=
(
this
.
_useShadows
&&
this
.
_scrollTop
>
0
);
if
(
this
.
_shouldShow
!==
newShouldShow
)
{
this
.
_shouldShow
=
newShouldShow
;
return
true
;
...
...
src/vs/editor/browser/viewParts/selections/selections.ts
浏览文件 @
c80de308
...
...
@@ -151,12 +151,8 @@ export class SelectionsOverlay extends DynamicViewOverlay {
private
_visibleRangesHaveGaps
(
linesVisibleRanges
:
LineVisibleRangesWithStyle
[]):
boolean
{
var
i
:
number
,
len
:
number
,
lineVisibleRanges
:
LineVisibleRangesWithStyle
;
for
(
i
=
0
,
len
=
linesVisibleRanges
.
length
;
i
<
len
;
i
++
)
{
lineVisibleRanges
=
linesVisibleRanges
[
i
];
for
(
let
i
=
0
,
len
=
linesVisibleRanges
.
length
;
i
<
len
;
i
++
)
{
let
lineVisibleRanges
=
linesVisibleRanges
[
i
];
if
(
lineVisibleRanges
.
ranges
.
length
>
1
)
{
// There are two ranges on the same line
...
...
@@ -168,32 +164,20 @@ export class SelectionsOverlay extends DynamicViewOverlay {
}
private
_enrichVisibleRangesWithStyle
(
linesVisibleRanges
:
LineVisibleRangesWithStyle
[],
previousFrame
:
LineVisibleRangesWithStyle
[]):
void
{
var
curLineRange
:
HorizontalRangeWithStyle
,
curLeft
:
number
,
curRight
:
number
,
prevLeft
:
number
,
prevRight
:
number
,
nextLeft
:
number
,
nextRight
:
number
,
startStyle
:
IVisibleRangeEndPointStyle
,
endStyle
:
IVisibleRangeEndPointStyle
,
i
:
number
,
len
:
number
;
var
previousFrameTop
:
HorizontalRangeWithStyle
=
null
,
previousFrameBottom
:
HorizontalRangeWithStyle
=
null
;
let
previousFrameTop
:
HorizontalRangeWithStyle
=
null
;
let
previousFrameBottom
:
HorizontalRangeWithStyle
=
null
;
if
(
previousFrame
&&
previousFrame
.
length
>
0
&&
linesVisibleRanges
.
length
>
0
)
{
var
topLineNumber
=
linesVisibleRanges
[
0
].
lineNumber
;
for
(
var
i
=
0
;
!
previousFrameTop
&&
i
<
previousFrame
.
length
;
i
++
)
{
let
topLineNumber
=
linesVisibleRanges
[
0
].
lineNumber
;
for
(
let
i
=
0
;
!
previousFrameTop
&&
i
<
previousFrame
.
length
;
i
++
)
{
if
(
previousFrame
[
i
].
lineNumber
===
topLineNumber
)
{
previousFrameTop
=
previousFrame
[
i
].
ranges
[
0
];
}
}
var
bottomLineNumber
=
linesVisibleRanges
[
linesVisibleRanges
.
length
-
1
].
lineNumber
;
for
(
var
i
=
previousFrame
.
length
-
1
;
!
previousFrameBottom
&&
i
>=
0
;
i
--
)
{
let
bottomLineNumber
=
linesVisibleRanges
[
linesVisibleRanges
.
length
-
1
].
lineNumber
;
for
(
let
i
=
previousFrame
.
length
-
1
;
!
previousFrameBottom
&&
i
>=
0
;
i
--
)
{
if
(
previousFrame
[
i
].
lineNumber
===
bottomLineNumber
)
{
previousFrameBottom
=
previousFrame
[
i
].
ranges
[
0
];
}
...
...
@@ -207,26 +191,26 @@ export class SelectionsOverlay extends DynamicViewOverlay {
}
}
for
(
i
=
0
,
len
=
linesVisibleRanges
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
linesVisibleRanges
.
length
;
i
<
len
;
i
++
)
{
// We know for a fact that there is precisely one range on each line
curLineRange
=
linesVisibleRanges
[
i
].
ranges
[
0
];
curLeft
=
curLineRange
.
left
;
curRight
=
curLineRange
.
left
+
curLineRange
.
width
;
let
curLineRange
=
linesVisibleRanges
[
i
].
ranges
[
0
];
let
curLeft
=
curLineRange
.
left
;
let
curRight
=
curLineRange
.
left
+
curLineRange
.
width
;
startStyle
=
{
let
startStyle
=
{
top
:
CornerStyle
.
EXTERN
,
bottom
:
CornerStyle
.
EXTERN
};
endStyle
=
{
let
endStyle
=
{
top
:
CornerStyle
.
EXTERN
,
bottom
:
CornerStyle
.
EXTERN
};
if
(
i
>
0
)
{
// Look above
prevLeft
=
linesVisibleRanges
[
i
-
1
].
ranges
[
0
].
left
;
prevRight
=
linesVisibleRanges
[
i
-
1
].
ranges
[
0
].
left
+
linesVisibleRanges
[
i
-
1
].
ranges
[
0
].
width
;
let
prevLeft
=
linesVisibleRanges
[
i
-
1
].
ranges
[
0
].
left
;
let
prevRight
=
linesVisibleRanges
[
i
-
1
].
ranges
[
0
].
left
+
linesVisibleRanges
[
i
-
1
].
ranges
[
0
].
width
;
if
(
curLeft
===
prevLeft
)
{
startStyle
.
top
=
CornerStyle
.
FLAT
;
...
...
@@ -247,8 +231,8 @@ export class SelectionsOverlay extends DynamicViewOverlay {
if
(
i
+
1
<
len
)
{
// Look below
nextLeft
=
linesVisibleRanges
[
i
+
1
].
ranges
[
0
].
left
;
nextRight
=
linesVisibleRanges
[
i
+
1
].
ranges
[
0
].
left
+
linesVisibleRanges
[
i
+
1
].
ranges
[
0
].
width
;
let
nextLeft
=
linesVisibleRanges
[
i
+
1
].
ranges
[
0
].
left
;
let
nextRight
=
linesVisibleRanges
[
i
+
1
].
ranges
[
0
].
left
+
linesVisibleRanges
[
i
+
1
].
ranges
[
0
].
width
;
if
(
curLeft
===
nextLeft
)
{
startStyle
.
bottom
=
CornerStyle
.
FLAT
;
...
...
src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts
浏览文件 @
c80de308
...
...
@@ -123,7 +123,7 @@ export class ViewCursor {
}
public
prepareRender
(
ctx
:
IRenderingContext
):
void
{
var
visibleRange
=
ctx
.
visibleRangeForPosition
(
this
.
_position
);
let
visibleRange
=
ctx
.
visibleRangeForPosition
(
this
.
_position
);
if
(
visibleRange
)
{
this
.
_positionTop
=
visibleRange
.
top
;
this
.
_positionLeft
=
visibleRange
.
left
;
...
...
src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts
浏览文件 @
c80de308
...
...
@@ -78,8 +78,8 @@ export class ViewCursors extends ViewPart {
public
onModelFlushed
():
boolean
{
this
.
_primaryCursor
.
onModelFlushed
();
for
(
var
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
var
domNode
=
this
.
_secondaryCursors
[
i
].
getDomNode
();
for
(
let
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
let
domNode
=
this
.
_secondaryCursors
[
i
].
getDomNode
();
domNode
.
parentNode
.
removeChild
(
domNode
);
}
this
.
_secondaryCursors
=
[];
...
...
@@ -99,7 +99,7 @@ export class ViewCursors extends ViewPart {
return
true
;
}
public
onModelTokensChanged
(
e
:
editorCommon
.
IViewTokensChangedEvent
):
boolean
{
var
shouldRender
=
(
position
:
editorCommon
.
IPosition
)
=>
{
let
shouldRender
=
(
position
:
editorCommon
.
IPosition
)
=>
{
for
(
let
i
=
0
,
len
=
e
.
ranges
.
length
;
i
<
len
;
i
++
)
{
if
(
e
.
ranges
[
i
].
fromLineNumber
<=
position
.
lineNumber
&&
position
.
lineNumber
<=
e
.
ranges
[
i
].
toLineNumber
)
{
return
true
;
...
...
@@ -110,7 +110,7 @@ export class ViewCursors extends ViewPart {
if
(
shouldRender
(
this
.
_primaryCursor
.
getPosition
()))
{
return
true
;
}
for
(
var
i
=
0
;
i
<
this
.
_secondaryCursors
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
_secondaryCursors
.
length
;
i
++
)
{
if
(
shouldRender
(
this
.
_secondaryCursors
[
i
].
getPosition
()))
{
return
true
;
}
...
...
@@ -123,22 +123,22 @@ export class ViewCursors extends ViewPart {
if
(
this
.
_secondaryCursors
.
length
<
e
.
secondaryPositions
.
length
)
{
// Create new cursors
var
addCnt
=
e
.
secondaryPositions
.
length
-
this
.
_secondaryCursors
.
length
;
for
(
var
i
=
0
;
i
<
addCnt
;
i
++
)
{
var
newCursor
=
new
ViewCursor
(
this
.
_context
,
true
);
let
addCnt
=
e
.
secondaryPositions
.
length
-
this
.
_secondaryCursors
.
length
;
for
(
let
i
=
0
;
i
<
addCnt
;
i
++
)
{
let
newCursor
=
new
ViewCursor
(
this
.
_context
,
true
);
this
.
_primaryCursor
.
getDomNode
().
parentNode
.
insertBefore
(
newCursor
.
getDomNode
(),
this
.
_primaryCursor
.
getDomNode
().
nextSibling
);
this
.
_secondaryCursors
.
push
(
newCursor
);
}
}
else
if
(
this
.
_secondaryCursors
.
length
>
e
.
secondaryPositions
.
length
)
{
// Remove some cursors
var
removeCnt
=
this
.
_secondaryCursors
.
length
-
e
.
secondaryPositions
.
length
;
for
(
var
i
=
0
;
i
<
removeCnt
;
i
++
)
{
let
removeCnt
=
this
.
_secondaryCursors
.
length
-
e
.
secondaryPositions
.
length
;
for
(
let
i
=
0
;
i
<
removeCnt
;
i
++
)
{
this
.
_secondaryCursors
[
0
].
getDomNode
().
parentNode
.
removeChild
(
this
.
_secondaryCursors
[
0
].
getDomNode
());
this
.
_secondaryCursors
.
splice
(
0
,
1
);
}
}
for
(
var
i
=
0
;
i
<
e
.
secondaryPositions
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
e
.
secondaryPositions
.
length
;
i
++
)
{
this
.
_secondaryCursors
[
i
].
onCursorPositionChanged
(
e
.
secondaryPositions
[
i
],
e
.
isInEditableRange
);
}
...
...
@@ -164,7 +164,7 @@ export class ViewCursors extends ViewPart {
if
(
e
.
viewInfo
.
cursorStyle
||
e
.
viewInfo
.
cursorBlinking
)
{
this
.
_updateDomClassName
();
}
for
(
var
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
this
.
_secondaryCursors
[
i
].
onConfigurationChanged
(
e
);
}
return
true
;
...
...
@@ -288,7 +288,7 @@ export class ViewCursors extends ViewPart {
private
_show
():
void
{
this
.
_primaryCursor
.
show
();
for
(
var
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
this
.
_secondaryCursors
[
i
].
show
();
}
this
.
_isVisible
=
true
;
...
...
@@ -296,7 +296,7 @@ export class ViewCursors extends ViewPart {
private
_hide
():
void
{
this
.
_primaryCursor
.
hide
();
for
(
var
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
this
.
_secondaryCursors
[
i
].
hide
();
}
this
.
_isVisible
=
false
;
...
...
@@ -310,7 +310,7 @@ export class ViewCursors extends ViewPart {
}
this
.
_primaryCursor
.
prepareRender
(
ctx
);
for
(
var
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
this
.
_secondaryCursors
[
i
].
prepareRender
(
ctx
);
}
}
...
...
@@ -318,7 +318,7 @@ export class ViewCursors extends ViewPart {
public
render
(
ctx
:
IRestrictedRenderingContext
):
void
{
this
.
_renderData
=
[];
this
.
_renderData
.
push
(
this
.
_primaryCursor
.
render
(
ctx
));
for
(
var
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
this
.
_secondaryCursors
.
length
;
i
<
len
;
i
++
)
{
this
.
_renderData
.
push
(
this
.
_secondaryCursors
[
i
].
render
(
ctx
));
}
...
...
src/vs/editor/browser/viewParts/viewZones/viewZones.ts
浏览文件 @
c80de308
...
...
@@ -200,7 +200,7 @@ export class ViewZones extends ViewPart {
public
removeZone
(
id
:
number
):
boolean
{
if
(
this
.
_zones
.
hasOwnProperty
(
id
.
toString
()))
{
var
zone
=
this
.
_zones
[
id
.
toString
()];
let
zone
=
this
.
_zones
[
id
.
toString
()];
delete
this
.
_zones
[
id
.
toString
()];
this
.
_whitespaceManager
.
removeWhitespace
(
zone
.
whitespaceId
);
...
...
@@ -234,7 +234,7 @@ export class ViewZones extends ViewPart {
public
shouldSuppressMouseDownOnViewZone
(
id
:
number
):
boolean
{
if
(
this
.
_zones
.
hasOwnProperty
(
id
.
toString
()))
{
var
zone
=
this
.
_zones
[
id
.
toString
()];
let
zone
=
this
.
_zones
[
id
.
toString
()];
return
zone
.
delegate
.
suppressMouseDown
;
}
return
false
;
...
...
src/vs/editor/browser/widget/codeEditorWidget.ts
浏览文件 @
c80de308
...
...
@@ -130,10 +130,10 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
if
(
!
model
)
{
return
''
;
}
var
content
=
model
.
getLineContent
(
lineNumber
);
var
tokens
=
model
.
getLineTokens
(
lineNumber
,
false
);
var
inflatedTokens
=
tokens
.
inflate
();
var
tabSize
=
model
.
getOptions
().
tabSize
;
let
content
=
model
.
getLineContent
(
lineNumber
);
let
tokens
=
model
.
getLineTokens
(
lineNumber
,
false
);
let
inflatedTokens
=
tokens
.
inflate
();
let
tabSize
=
model
.
getOptions
().
tabSize
;
return
Colorizer
.
colorizeLine
(
content
,
inflatedTokens
,
tabSize
);
}
public
getView
():
editorBrowser
.
IView
{
...
...
@@ -247,14 +247,13 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
};
}
public
restoreViewState
(
s
tate
:
editorCommon
.
I
EditorViewState
):
void
{
public
restoreViewState
(
s
:
editorCommon
.
ICode
EditorViewState
):
void
{
if
(
!
this
.
cursor
||
!
this
.
hasView
)
{
return
;
}
var
s
=
<
any
>
state
;
if
(
s
&&
s
.
cursorState
&&
s
.
viewState
)
{
var
codeEditorState
=
<
editorCommon
.
ICodeEditorViewState
>
s
;
var
cursorState
=
<
any
>
codeEditorState
.
cursorState
;
let
codeEditorState
=
<
editorCommon
.
ICodeEditorViewState
>
s
;
let
cursorState
=
<
any
>
codeEditorState
.
cursorState
;
if
(
Array
.
isArray
(
cursorState
))
{
this
.
cursor
.
restoreState
(
<
editorCommon
.
ICursorState
[]
>
cursorState
);
}
else
{
...
...
@@ -296,7 +295,7 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
}
public
addContentWidget
(
widget
:
editorBrowser
.
IContentWidget
):
void
{
var
widgetData
:
editorBrowser
.
IContentWidgetData
=
{
let
widgetData
:
editorBrowser
.
IContentWidgetData
=
{
widget
:
widget
,
position
:
widget
.
getPosition
()
};
...
...
@@ -313,9 +312,9 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
}
public
layoutContentWidget
(
widget
:
editorBrowser
.
IContentWidget
):
void
{
var
widgetId
=
widget
.
getId
();
let
widgetId
=
widget
.
getId
();
if
(
this
.
contentWidgets
.
hasOwnProperty
(
widgetId
))
{
var
widgetData
=
this
.
contentWidgets
[
widgetId
];
let
widgetData
=
this
.
contentWidgets
[
widgetId
];
widgetData
.
position
=
widget
.
getPosition
();
if
(
this
.
hasView
)
{
this
.
_view
.
layoutContentWidget
(
widgetData
);
...
...
@@ -324,9 +323,9 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
}
public
removeContentWidget
(
widget
:
editorBrowser
.
IContentWidget
):
void
{
var
widgetId
=
widget
.
getId
();
let
widgetId
=
widget
.
getId
();
if
(
this
.
contentWidgets
.
hasOwnProperty
(
widgetId
))
{
var
widgetData
=
this
.
contentWidgets
[
widgetId
];
let
widgetData
=
this
.
contentWidgets
[
widgetId
];
delete
this
.
contentWidgets
[
widgetId
];
if
(
this
.
hasView
)
{
this
.
_view
.
removeContentWidget
(
widgetData
);
...
...
@@ -335,7 +334,7 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
}
public
addOverlayWidget
(
widget
:
editorBrowser
.
IOverlayWidget
):
void
{
var
widgetData
:
editorBrowser
.
IOverlayWidgetData
=
{
let
widgetData
:
editorBrowser
.
IOverlayWidgetData
=
{
widget
:
widget
,
position
:
widget
.
getPosition
()
};
...
...
@@ -352,9 +351,9 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
}
public
layoutOverlayWidget
(
widget
:
editorBrowser
.
IOverlayWidget
):
void
{
var
widgetId
=
widget
.
getId
();
let
widgetId
=
widget
.
getId
();
if
(
this
.
overlayWidgets
.
hasOwnProperty
(
widgetId
))
{
var
widgetData
=
this
.
overlayWidgets
[
widgetId
];
let
widgetData
=
this
.
overlayWidgets
[
widgetId
];
widgetData
.
position
=
widget
.
getPosition
();
if
(
this
.
hasView
)
{
this
.
_view
.
layoutOverlayWidget
(
widgetData
);
...
...
@@ -363,9 +362,9 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
}
public
removeOverlayWidget
(
widget
:
editorBrowser
.
IOverlayWidget
):
void
{
var
widgetId
=
widget
.
getId
();
let
widgetId
=
widget
.
getId
();
if
(
this
.
overlayWidgets
.
hasOwnProperty
(
widgetId
))
{
var
widgetData
=
this
.
overlayWidgets
[
widgetId
];
let
widgetData
=
this
.
overlayWidgets
[
widgetId
];
delete
this
.
overlayWidgets
[
widgetId
];
if
(
this
.
hasView
)
{
this
.
_view
.
removeOverlayWidget
(
widgetData
);
...
...
@@ -378,7 +377,7 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
// console.warn('Cannot change view zones on editor that is not attached to a model, since there is no view.');
return
;
}
var
hasChanges
=
this
.
_view
.
change
(
callback
);
let
hasChanges
=
this
.
_view
.
change
(
callback
);
if
(
hasChanges
)
{
this
.
emit
(
editorCommon
.
EventType
.
ViewZonesChanged
);
}
...
...
@@ -410,12 +409,12 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
return
null
;
}
var
position
=
this
.
model
.
validatePosition
(
rawPosition
);
var
helper
=
this
.
_view
.
getCodeEditorHelper
();
var
layoutInfo
=
this
.
_configuration
.
editor
.
layoutInfo
;
let
position
=
this
.
model
.
validatePosition
(
rawPosition
);
let
helper
=
this
.
_view
.
getCodeEditorHelper
();
let
layoutInfo
=
this
.
_configuration
.
editor
.
layoutInfo
;
var
top
=
helper
.
getVerticalOffsetForPosition
(
position
.
lineNumber
,
position
.
column
)
-
helper
.
getScrollTop
();
var
left
=
helper
.
getOffsetForColumn
(
position
.
lineNumber
,
position
.
column
)
+
layoutInfo
.
glyphMarginWidth
+
layoutInfo
.
lineNumbersWidth
+
layoutInfo
.
decorationsWidth
-
helper
.
getScrollLeft
();
let
top
=
helper
.
getVerticalOffsetForPosition
(
position
.
lineNumber
,
position
.
column
)
-
helper
.
getScrollTop
();
let
left
=
helper
.
getOffsetForColumn
(
position
.
lineNumber
,
position
.
column
)
+
layoutInfo
.
glyphMarginWidth
+
layoutInfo
.
lineNumbersWidth
+
layoutInfo
.
decorationsWidth
-
helper
.
getScrollLeft
();
return
{
top
:
top
,
...
...
@@ -506,7 +505,7 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito
}
protected
_detachModel
():
editorCommon
.
IModel
{
var
removeDomNode
:
HTMLElement
=
null
;
let
removeDomNode
:
HTMLElement
=
null
;
if
(
this
.
_view
)
{
this
.
_view
.
dispose
();
...
...
@@ -634,9 +633,9 @@ export class CommandRunner implements editorCommon.ICommand {
});
// Merge operations that touch each other
var
resultOps
:
editorCommon
.
ISingleEditOperation
[]
=
[];
var
previousOp
=
this
.
_ops
[
0
];
for
(
var
i
=
1
;
i
<
this
.
_ops
.
length
;
i
++
)
{
let
resultOps
:
editorCommon
.
ISingleEditOperation
[]
=
[];
let
previousOp
=
this
.
_ops
[
0
];
for
(
let
i
=
1
;
i
<
this
.
_ops
.
length
;
i
++
)
{
if
(
previousOp
.
range
.
endLineNumber
===
this
.
_ops
[
i
].
range
.
startLineNumber
&&
previousOp
.
range
.
endColumn
===
this
.
_ops
[
i
].
range
.
startColumn
)
{
// These operations are one after another and can be merged
previousOp
.
range
=
Range
.
plusRange
(
previousOp
.
range
,
this
.
_ops
[
i
].
range
);
...
...
@@ -648,14 +647,14 @@ export class CommandRunner implements editorCommon.ICommand {
}
resultOps
.
push
(
previousOp
);
for
(
var
i
=
0
;
i
<
resultOps
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
resultOps
.
length
;
i
++
)
{
builder
.
addEditOperation
(
Range
.
lift
(
resultOps
[
i
].
range
),
resultOps
[
i
].
text
);
}
}
public
computeCursorState
(
model
:
editorCommon
.
ITokenizedModel
,
helper
:
editorCommon
.
ICursorStateComputerData
):
Selection
{
var
inverseEditOperations
=
helper
.
getInverseEditOperations
();
var
srcRange
=
inverseEditOperations
[
inverseEditOperations
.
length
-
1
].
range
;
let
inverseEditOperations
=
helper
.
getInverseEditOperations
();
let
srcRange
=
inverseEditOperations
[
inverseEditOperations
.
length
-
1
].
range
;
return
new
Selection
(
srcRange
.
endLineNumber
,
srcRange
.
endColumn
,
...
...
src/vs/editor/browser/widget/diffEditorWidget.ts
浏览文件 @
c80de308
...
...
@@ -79,7 +79,7 @@ class VisualEditorState {
// (1) View zones
if
(
this
.
_zones
.
length
>
0
)
{
editor
.
changeViewZones
((
viewChangeAccessor
:
editorBrowser
.
IViewZoneChangeAccessor
)
=>
{
for
(
var
i
=
0
,
length
=
this
.
_zones
.
length
;
i
<
length
;
i
++
)
{
for
(
let
i
=
0
,
length
=
this
.
_zones
.
length
;
i
<
length
;
i
++
)
{
viewChangeAccessor
.
removeZone
(
this
.
_zones
[
i
]);
}
});
...
...
@@ -97,19 +97,16 @@ class VisualEditorState {
}
public
apply
(
editor
:
CodeEditor
,
overviewRuler
:
editorBrowser
.
IOverviewRuler
,
newDecorations
:
IEditorDiffDecorationsWithZones
):
void
{
var
i
:
number
,
length
:
number
;
// view zones
editor
.
changeViewZones
((
viewChangeAccessor
:
editorBrowser
.
IViewZoneChangeAccessor
)
=>
{
for
(
i
=
0
,
length
=
this
.
_zones
.
length
;
i
<
length
;
i
++
)
{
for
(
let
i
=
0
,
length
=
this
.
_zones
.
length
;
i
<
length
;
i
++
)
{
viewChangeAccessor
.
removeZone
(
this
.
_zones
[
i
]);
}
this
.
_zones
=
[];
this
.
_zonesMap
=
{};
for
(
i
=
0
,
length
=
newDecorations
.
zones
.
length
;
i
<
length
;
i
++
)
{
for
(
let
i
=
0
,
length
=
newDecorations
.
zones
.
length
;
i
<
length
;
i
++
)
{
newDecorations
.
zones
[
i
].
suppressMouseDown
=
true
;
var
zoneId
=
viewChangeAccessor
.
addZone
(
newDecorations
.
zones
[
i
]);
let
zoneId
=
viewChangeAccessor
.
addZone
(
newDecorations
.
zones
[
i
]);
this
.
_zones
.
push
(
zoneId
);
this
.
_zonesMap
[
String
(
zoneId
)]
=
true
;
}
...
...
@@ -125,7 +122,7 @@ class VisualEditorState {
}
}
var
DIFF_EDITOR_ID
=
0
;
let
DIFF_EDITOR_ID
=
0
;
export
class
DiffEditorWidget
extends
EventEmitter
implements
editorBrowser
.
IDiffEditor
{
...
...
@@ -313,7 +310,7 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
static
_getClassName
(
theme
:
string
,
renderSideBySide
:
boolean
):
string
{
var
result
=
'
monaco-diff-editor monaco-editor-background
'
;
let
result
=
'
monaco-diff-editor monaco-editor-background
'
;
if
(
renderSideBySide
)
{
result
+=
'
side-by-side
'
;
}
...
...
@@ -418,7 +415,7 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
this
.
_theme
=
newOptions
&&
newOptions
.
theme
?
newOptions
.
theme
:
this
.
_theme
;
// Handle side by side
var
renderSideBySideChanged
=
false
;
let
renderSideBySideChanged
=
false
;
if
(
typeof
newOptions
.
renderSideBySide
!==
'
undefined
'
)
{
if
(
this
.
_renderSideBySide
!==
newOptions
.
renderSideBySide
)
{
this
.
_renderSideBySide
=
newOptions
.
renderSideBySide
;
...
...
@@ -607,18 +604,17 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
public
saveViewState
():
editorCommon
.
IDiffEditorViewState
{
var
originalViewState
=
this
.
originalEditor
.
saveViewState
();
var
modifiedViewState
=
this
.
modifiedEditor
.
saveViewState
();
let
originalViewState
=
this
.
originalEditor
.
saveViewState
();
let
modifiedViewState
=
this
.
modifiedEditor
.
saveViewState
();
return
{
original
:
originalViewState
,
modified
:
modifiedViewState
};
}
public
restoreViewState
(
state
:
editorCommon
.
IEditorViewState
):
void
{
var
s
=
<
any
>
state
;
public
restoreViewState
(
s
:
editorCommon
.
IDiffEditorViewState
):
void
{
if
(
s
.
original
&&
s
.
original
)
{
var
diffEditorState
=
<
editorCommon
.
IDiffEditorViewState
>
s
;
let
diffEditorState
=
<
editorCommon
.
IDiffEditorViewState
>
s
;
this
.
originalEditor
.
restoreViewState
(
diffEditorState
.
original
);
this
.
modifiedEditor
.
restoreViewState
(
diffEditorState
.
modified
);
}
...
...
@@ -690,8 +686,8 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_layoutOverviewRulers
():
void
{
var
freeSpace
=
DiffEditorWidget
.
ENTIRE_DIFF_OVERVIEW_WIDTH
-
2
*
DiffEditorWidget
.
ONE_OVERVIEW_WIDTH
;
var
layoutInfo
=
this
.
modifiedEditor
.
getLayoutInfo
();
let
freeSpace
=
DiffEditorWidget
.
ENTIRE_DIFF_OVERVIEW_WIDTH
-
2
*
DiffEditorWidget
.
ONE_OVERVIEW_WIDTH
;
let
layoutInfo
=
this
.
modifiedEditor
.
getLayoutInfo
();
if
(
layoutInfo
)
{
this
.
_originalOverviewRuler
.
setLayout
(
new
editorCommon
.
OverviewRulerPosition
({
top
:
0
,
...
...
@@ -711,9 +707,9 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
//------------ end layouting methods
private
_recomputeIfNecessary
(
events
:
EmitterEvent
[]):
void
{
var
changed
=
false
;
for
(
var
i
=
0
;
!
changed
&&
i
<
events
.
length
;
i
++
)
{
var
type
=
events
[
i
].
getType
();
let
changed
=
false
;
for
(
let
i
=
0
;
!
changed
&&
i
<
events
.
length
;
i
++
)
{
let
type
=
events
[
i
].
getType
();
changed
=
changed
||
type
===
editorCommon
.
EventType
.
ModelRawContentChanged
||
type
===
editorCommon
.
EventType
.
ModelModeChanged
;
}
if
(
changed
&&
this
.
_isVisible
)
{
...
...
@@ -727,7 +723,7 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_onOriginalEditorEvents
(
events
:
EmitterEvent
[]):
void
{
for
(
var
i
=
0
;
i
<
events
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
events
.
length
;
i
++
)
{
let
type
=
events
[
i
].
getType
();
let
data
=
events
[
i
].
getData
();
...
...
@@ -749,7 +745,7 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_onModifiedEditorEvents
(
events
:
EmitterEvent
[]):
void
{
for
(
var
i
=
0
;
i
<
events
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
events
.
length
;
i
++
)
{
let
type
=
events
[
i
].
getType
();
let
data
=
events
[
i
].
getData
();
...
...
@@ -795,9 +791,9 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
// The best method would be to call cancel on the Promise, but this is not
// yet supported, so using tokens for now.
this
.
_diffComputationToken
++
;
var
currentToken
=
this
.
_diffComputationToken
;
var
currentOriginalModel
=
this
.
originalEditor
.
getModel
();
var
currentModifiedModel
=
this
.
modifiedEditor
.
getModel
();
let
currentToken
=
this
.
_diffComputationToken
;
let
currentOriginalModel
=
this
.
originalEditor
.
getModel
();
let
currentModifiedModel
=
this
.
modifiedEditor
.
getModel
();
this
.
_editorWorkerService
.
computeDiff
(
currentOriginalModel
.
uri
,
currentModifiedModel
.
uri
,
this
.
_ignoreTrimWhitespace
).
then
((
result
)
=>
{
if
(
currentToken
===
this
.
_diffComputationToken
...
...
@@ -828,12 +824,12 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
if
(
!
this
.
originalEditor
.
getModel
()
||
!
this
.
modifiedEditor
.
getModel
())
{
return
;
}
var
lineChanges
=
this
.
_lineChanges
||
[];
let
lineChanges
=
this
.
_lineChanges
||
[];
var
foreignOriginal
=
this
.
_originalEditorState
.
getForeignViewZones
(
this
.
originalEditor
.
getWhitespaces
());
var
foreignModified
=
this
.
_modifiedEditorState
.
getForeignViewZones
(
this
.
modifiedEditor
.
getWhitespaces
());
let
foreignOriginal
=
this
.
_originalEditorState
.
getForeignViewZones
(
this
.
originalEditor
.
getWhitespaces
());
let
foreignModified
=
this
.
_modifiedEditorState
.
getForeignViewZones
(
this
.
modifiedEditor
.
getWhitespaces
());
var
diffDecorations
=
this
.
_strategy
.
getEditorsDiffDecorations
(
lineChanges
,
this
.
_ignoreTrimWhitespace
,
foreignOriginal
,
foreignModified
,
this
.
originalEditor
,
this
.
modifiedEditor
);
let
diffDecorations
=
this
.
_strategy
.
getEditorsDiffDecorations
(
lineChanges
,
this
.
_ignoreTrimWhitespace
,
foreignOriginal
,
foreignModified
,
this
.
originalEditor
,
this
.
modifiedEditor
);
try
{
this
.
_currentlyChangingViewZones
=
true
;
...
...
@@ -903,7 +899,7 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_doLayout
():
void
{
var
splitPoint
=
this
.
_strategy
.
layout
();
let
splitPoint
=
this
.
_strategy
.
layout
();
this
.
_originalDomNode
.
style
.
width
=
splitPoint
+
'
px
'
;
this
.
_originalDomNode
.
style
.
left
=
'
0px
'
;
...
...
@@ -928,7 +924,7 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_layoutOverviewViewport
():
void
{
var
layout
=
this
.
_computeOverviewViewport
();
let
layout
=
this
.
_computeOverviewViewport
();
if
(
!
layout
)
{
StyleMutator
.
setTop
(
this
.
_overviewViewportDomElement
,
0
);
StyleMutator
.
setHeight
(
this
.
_overviewViewportDomElement
,
0
);
...
...
@@ -939,20 +935,20 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_computeOverviewViewport
():
{
height
:
number
;
top
:
number
;
}
{
var
layoutInfo
=
this
.
modifiedEditor
.
getLayoutInfo
();
let
layoutInfo
=
this
.
modifiedEditor
.
getLayoutInfo
();
if
(
!
layoutInfo
)
{
return
null
;
}
var
scrollTop
=
this
.
modifiedEditor
.
getScrollTop
();
var
scrollHeight
=
this
.
modifiedEditor
.
getScrollHeight
();
let
scrollTop
=
this
.
modifiedEditor
.
getScrollTop
();
let
scrollHeight
=
this
.
modifiedEditor
.
getScrollHeight
();
var
computedAvailableSize
=
Math
.
max
(
0
,
layoutInfo
.
contentHeight
);
var
computedRepresentableSize
=
Math
.
max
(
0
,
computedAvailableSize
-
2
*
0
);
var
computedRatio
=
scrollHeight
>
0
?
(
computedRepresentableSize
/
scrollHeight
)
:
0
;
let
computedAvailableSize
=
Math
.
max
(
0
,
layoutInfo
.
contentHeight
);
let
computedRepresentableSize
=
Math
.
max
(
0
,
computedAvailableSize
-
2
*
0
);
let
computedRatio
=
scrollHeight
>
0
?
(
computedRepresentableSize
/
scrollHeight
)
:
0
;
var
computedSliderSize
=
Math
.
max
(
1
,
Math
.
floor
(
layoutInfo
.
contentHeight
*
computedRatio
));
var
computedSliderPosition
=
Math
.
floor
(
scrollTop
*
computedRatio
);
let
computedSliderSize
=
Math
.
max
(
1
,
Math
.
floor
(
layoutInfo
.
contentHeight
*
computedRatio
));
let
computedSliderPosition
=
Math
.
floor
(
scrollTop
*
computedRatio
);
return
{
height
:
computedSliderSize
,
...
...
@@ -1009,11 +1005,11 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
return
null
;
}
var
min
=
0
,
max
=
this
.
_lineChanges
.
length
-
1
;
let
min
=
0
,
max
=
this
.
_lineChanges
.
length
-
1
;
while
(
min
<
max
)
{
var
mid
=
Math
.
floor
((
min
+
max
)
/
2
);
var
midStart
=
startLineNumberExtractor
(
this
.
_lineChanges
[
mid
]);
var
midEnd
=
(
mid
+
1
<=
max
?
startLineNumberExtractor
(
this
.
_lineChanges
[
mid
+
1
])
:
Number
.
MAX_VALUE
);
let
mid
=
Math
.
floor
((
min
+
max
)
/
2
);
let
midStart
=
startLineNumberExtractor
(
this
.
_lineChanges
[
mid
]);
let
midEnd
=
(
mid
+
1
<=
max
?
startLineNumberExtractor
(
this
.
_lineChanges
[
mid
+
1
])
:
Number
.
MAX_VALUE
);
if
(
lineNumber
<
midStart
)
{
max
=
mid
-
1
;
...
...
@@ -1029,19 +1025,19 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_getEquivalentLineForOriginalLineNumber
(
lineNumber
:
number
):
number
{
var
lineChange
=
this
.
_getLineChangeAtOrBeforeLineNumber
(
lineNumber
,
(
lineChange
)
=>
lineChange
.
originalStartLineNumber
);
let
lineChange
=
this
.
_getLineChangeAtOrBeforeLineNumber
(
lineNumber
,
(
lineChange
)
=>
lineChange
.
originalStartLineNumber
);
if
(
!
lineChange
)
{
return
lineNumber
;
}
var
originalEquivalentLineNumber
=
lineChange
.
originalStartLineNumber
+
(
lineChange
.
originalEndLineNumber
>
0
?
-
1
:
0
);
var
modifiedEquivalentLineNumber
=
lineChange
.
modifiedStartLineNumber
+
(
lineChange
.
modifiedEndLineNumber
>
0
?
-
1
:
0
);
var
lineChangeOriginalLength
=
(
lineChange
.
originalEndLineNumber
>
0
?
(
lineChange
.
originalEndLineNumber
-
lineChange
.
originalStartLineNumber
+
1
)
:
0
);
var
lineChangeModifiedLength
=
(
lineChange
.
modifiedEndLineNumber
>
0
?
(
lineChange
.
modifiedEndLineNumber
-
lineChange
.
modifiedStartLineNumber
+
1
)
:
0
);
let
originalEquivalentLineNumber
=
lineChange
.
originalStartLineNumber
+
(
lineChange
.
originalEndLineNumber
>
0
?
-
1
:
0
);
let
modifiedEquivalentLineNumber
=
lineChange
.
modifiedStartLineNumber
+
(
lineChange
.
modifiedEndLineNumber
>
0
?
-
1
:
0
);
let
lineChangeOriginalLength
=
(
lineChange
.
originalEndLineNumber
>
0
?
(
lineChange
.
originalEndLineNumber
-
lineChange
.
originalStartLineNumber
+
1
)
:
0
);
let
lineChangeModifiedLength
=
(
lineChange
.
modifiedEndLineNumber
>
0
?
(
lineChange
.
modifiedEndLineNumber
-
lineChange
.
modifiedStartLineNumber
+
1
)
:
0
);
var
delta
=
lineNumber
-
originalEquivalentLineNumber
;
let
delta
=
lineNumber
-
originalEquivalentLineNumber
;
if
(
delta
<=
lineChangeOriginalLength
)
{
return
modifiedEquivalentLineNumber
+
Math
.
min
(
delta
,
lineChangeModifiedLength
);
...
...
@@ -1051,19 +1047,19 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif
}
private
_getEquivalentLineForModifiedLineNumber
(
lineNumber
:
number
):
number
{
var
lineChange
=
this
.
_getLineChangeAtOrBeforeLineNumber
(
lineNumber
,
(
lineChange
)
=>
lineChange
.
modifiedStartLineNumber
);
let
lineChange
=
this
.
_getLineChangeAtOrBeforeLineNumber
(
lineNumber
,
(
lineChange
)
=>
lineChange
.
modifiedStartLineNumber
);
if
(
!
lineChange
)
{
return
lineNumber
;
}
var
originalEquivalentLineNumber
=
lineChange
.
originalStartLineNumber
+
(
lineChange
.
originalEndLineNumber
>
0
?
-
1
:
0
);
var
modifiedEquivalentLineNumber
=
lineChange
.
modifiedStartLineNumber
+
(
lineChange
.
modifiedEndLineNumber
>
0
?
-
1
:
0
);
var
lineChangeOriginalLength
=
(
lineChange
.
originalEndLineNumber
>
0
?
(
lineChange
.
originalEndLineNumber
-
lineChange
.
originalStartLineNumber
+
1
)
:
0
);
var
lineChangeModifiedLength
=
(
lineChange
.
modifiedEndLineNumber
>
0
?
(
lineChange
.
modifiedEndLineNumber
-
lineChange
.
modifiedStartLineNumber
+
1
)
:
0
);
let
originalEquivalentLineNumber
=
lineChange
.
originalStartLineNumber
+
(
lineChange
.
originalEndLineNumber
>
0
?
-
1
:
0
);
let
modifiedEquivalentLineNumber
=
lineChange
.
modifiedStartLineNumber
+
(
lineChange
.
modifiedEndLineNumber
>
0
?
-
1
:
0
);
let
lineChangeOriginalLength
=
(
lineChange
.
originalEndLineNumber
>
0
?
(
lineChange
.
originalEndLineNumber
-
lineChange
.
originalStartLineNumber
+
1
)
:
0
);
let
lineChangeModifiedLength
=
(
lineChange
.
modifiedEndLineNumber
>
0
?
(
lineChange
.
modifiedEndLineNumber
-
lineChange
.
modifiedStartLineNumber
+
1
)
:
0
);
var
delta
=
lineNumber
-
modifiedEquivalentLineNumber
;
let
delta
=
lineNumber
-
modifiedEquivalentLineNumber
;
if
(
delta
<=
lineChangeModifiedLength
)
{
return
originalEquivalentLineNumber
+
Math
.
min
(
delta
,
lineChangeOriginalLength
);
...
...
@@ -1119,11 +1115,11 @@ class DiffEditorWidgetStyle {
originalWhitespaces
=
originalWhitespaces
.
sort
((
a
,
b
)
=>
{
return
a
.
afterLineNumber
-
b
.
afterLineNumber
;
});
var
zones
=
this
.
_getViewZones
(
lineChanges
,
originalWhitespaces
,
modifiedWhitespaces
,
originalEditor
,
modifiedEditor
);
let
zones
=
this
.
_getViewZones
(
lineChanges
,
originalWhitespaces
,
modifiedWhitespaces
,
originalEditor
,
modifiedEditor
);
// Get decorations & overview ruler zones
var
originalDecorations
=
this
.
_getOriginalEditorDecorations
(
lineChanges
,
ignoreTrimWhitespace
,
originalEditor
,
modifiedEditor
);
var
modifiedDecorations
=
this
.
_getModifiedEditorDecorations
(
lineChanges
,
ignoreTrimWhitespace
,
originalEditor
,
modifiedEditor
);
let
originalDecorations
=
this
.
_getOriginalEditorDecorations
(
lineChanges
,
ignoreTrimWhitespace
,
originalEditor
,
modifiedEditor
);
let
modifiedDecorations
=
this
.
_getModifiedEditorDecorations
(
lineChanges
,
ignoreTrimWhitespace
,
originalEditor
,
modifiedEditor
);
return
{
original
:
{
...
...
@@ -1191,34 +1187,25 @@ abstract class ViewZonesComputer {
}
public
getViewZones
():
IEditorsZones
{
var
result
:
IEditorsZones
=
{
let
result
:
IEditorsZones
=
{
original
:
[],
modified
:
[]
};
var
i
:
number
,
length
:
number
,
lineChange
:
editorCommon
.
ILineChange
;
var
stepOriginal
:
IMyViewZone
[],
stepModified
:
IMyViewZone
[],
stepOriginalIndex
:
number
,
stepModifiedIndex
:
number
,
lineChangeModifiedLength
:
number
=
0
,
lineChangeOriginalLength
:
number
=
0
,
originalEquivalentLineNumber
:
number
=
0
,
modifiedEquivalentLineNumber
:
number
=
0
,
originalEndEquivalentLineNumber
:
number
=
0
,
modifiedEndEquivalentLineNumber
:
number
=
0
,
viewZoneLineNumber
:
number
=
0
;
var
sortMyViewZones
=
(
a
:
IMyViewZone
,
b
:
IMyViewZone
)
=>
{
let
lineChangeModifiedLength
:
number
=
0
;
let
lineChangeOriginalLength
:
number
=
0
;
let
originalEquivalentLineNumber
:
number
=
0
;
let
modifiedEquivalentLineNumber
:
number
=
0
;
let
originalEndEquivalentLineNumber
:
number
=
0
;
let
modifiedEndEquivalentLineNumber
:
number
=
0
;
let
sortMyViewZones
=
(
a
:
IMyViewZone
,
b
:
IMyViewZone
)
=>
{
return
a
.
afterLineNumber
-
b
.
afterLineNumber
;
};
var
addAndCombineIfPossible
=
(
destination
:
editorBrowser
.
IViewZone
[],
item
:
IMyViewZone
)
=>
{
let
addAndCombineIfPossible
=
(
destination
:
editorBrowser
.
IViewZone
[],
item
:
IMyViewZone
)
=>
{
if
(
item
.
domNode
===
null
&&
destination
.
length
>
0
)
{
var
lastItem
=
destination
[
destination
.
length
-
1
];
let
lastItem
=
destination
[
destination
.
length
-
1
];
if
(
lastItem
.
afterLineNumber
===
item
.
afterLineNumber
&&
lastItem
.
domNode
===
null
)
{
lastItem
.
heightInLines
+=
item
.
heightInLines
;
return
;
...
...
@@ -1227,12 +1214,12 @@ abstract class ViewZonesComputer {
destination
.
push
(
item
);
};
var
modifiedForeignVZ
=
new
ForeignViewZonesIterator
(
this
.
modifiedForeignVZ
);
var
originalForeignVZ
=
new
ForeignViewZonesIterator
(
this
.
originalForeignVZ
);
let
modifiedForeignVZ
=
new
ForeignViewZonesIterator
(
this
.
modifiedForeignVZ
);
let
originalForeignVZ
=
new
ForeignViewZonesIterator
(
this
.
originalForeignVZ
);
// In order to include foreign view zones after the last line change, the for loop will iterate once more after the end of the `lineChanges` array
for
(
i
=
0
,
length
=
this
.
lineChanges
.
length
;
i
<=
length
;
i
++
)
{
lineChange
=
(
i
<
length
?
this
.
lineChanges
[
i
]
:
null
);
for
(
let
i
=
0
,
length
=
this
.
lineChanges
.
length
;
i
<=
length
;
i
++
)
{
l
et
l
ineChange
=
(
i
<
length
?
this
.
lineChanges
[
i
]
:
null
);
if
(
lineChange
!==
null
)
{
originalEquivalentLineNumber
=
lineChange
.
originalStartLineNumber
+
(
lineChange
.
originalEndLineNumber
>
0
?
-
1
:
0
);
...
...
@@ -1250,13 +1237,14 @@ abstract class ViewZonesComputer {
}
// Each step produces view zones, and after producing them, we try to cancel them out, to avoid empty-empty view zone cases
stepOriginal
=
[];
stepModified
=
[];
let
stepOriginal
:
IMyViewZone
[]
=
[];
let
stepModified
:
IMyViewZone
[]
=
[];
// ---------------------------- PRODUCE VIEW ZONES
// [PRODUCE] View zone(s) in original-side due to foreign view zone(s) in modified-side
while
(
modifiedForeignVZ
.
current
&&
modifiedForeignVZ
.
current
.
afterLineNumber
<=
modifiedEndEquivalentLineNumber
)
{
let
viewZoneLineNumber
:
number
;
if
(
modifiedForeignVZ
.
current
.
afterLineNumber
<=
modifiedEquivalentLineNumber
)
{
viewZoneLineNumber
=
originalEquivalentLineNumber
-
modifiedEquivalentLineNumber
+
modifiedForeignVZ
.
current
.
afterLineNumber
;
}
else
{
...
...
@@ -1272,6 +1260,7 @@ abstract class ViewZonesComputer {
// [PRODUCE] View zone(s) in modified-side due to foreign view zone(s) in original-side
while
(
originalForeignVZ
.
current
&&
originalForeignVZ
.
current
.
afterLineNumber
<=
originalEndEquivalentLineNumber
)
{
let
viewZoneLineNumber
:
number
;
if
(
originalForeignVZ
.
current
.
afterLineNumber
<=
originalEquivalentLineNumber
)
{
viewZoneLineNumber
=
modifiedEquivalentLineNumber
-
originalEquivalentLineNumber
+
originalForeignVZ
.
current
.
afterLineNumber
;
}
else
{
...
...
@@ -1286,14 +1275,14 @@ abstract class ViewZonesComputer {
}
if
(
lineChange
!==
null
&&
isChangeOrInsert
(
lineChange
))
{
var
r
=
this
.
_produceOriginalFromDiff
(
lineChange
,
lineChangeOriginalLength
,
lineChangeModifiedLength
);
let
r
=
this
.
_produceOriginalFromDiff
(
lineChange
,
lineChangeOriginalLength
,
lineChangeModifiedLength
);
if
(
r
)
{
stepOriginal
.
push
(
r
);
}
}
if
(
lineChange
!==
null
&&
isChangeOrDelete
(
lineChange
))
{
var
r
=
this
.
_produceModifiedFromDiff
(
lineChange
,
lineChangeOriginalLength
,
lineChangeModifiedLength
);
let
r
=
this
.
_produceModifiedFromDiff
(
lineChange
,
lineChangeOriginalLength
,
lineChangeModifiedLength
);
if
(
r
)
{
stepModified
.
push
(
r
);
}
...
...
@@ -1305,18 +1294,18 @@ abstract class ViewZonesComputer {
// ---------------------------- EMIT MINIMAL VIEW ZONES
// [CANCEL & EMIT] Try to cancel view zones out
stepOriginalIndex
=
0
;
stepModifiedIndex
=
0
;
let
stepOriginalIndex
=
0
;
let
stepModifiedIndex
=
0
;
stepOriginal
=
stepOriginal
.
sort
(
sortMyViewZones
);
stepModified
=
stepModified
.
sort
(
sortMyViewZones
);
while
(
stepOriginalIndex
<
stepOriginal
.
length
&&
stepModifiedIndex
<
stepModified
.
length
)
{
var
original
=
stepOriginal
[
stepOriginalIndex
];
var
modified
=
stepModified
[
stepModifiedIndex
];
let
original
=
stepOriginal
[
stepOriginalIndex
];
let
modified
=
stepModified
[
stepModifiedIndex
];
var
originalDelta
=
original
.
afterLineNumber
-
originalEquivalentLineNumber
;
var
modifiedDelta
=
modified
.
afterLineNumber
-
modifiedEquivalentLineNumber
;
let
originalDelta
=
original
.
afterLineNumber
-
originalEquivalentLineNumber
;
let
modifiedDelta
=
modified
.
afterLineNumber
-
modifiedEquivalentLineNumber
;
if
(
originalDelta
<
modifiedDelta
)
{
addAndCombineIfPossible
(
result
.
original
,
original
);
...
...
@@ -1358,7 +1347,7 @@ abstract class ViewZonesComputer {
// ---------------------------- END EMIT MINIMAL VIEW ZONES
}
var
ensureDomNode
=
(
z
:
IMyViewZone
)
=>
{
let
ensureDomNode
=
(
z
:
IMyViewZone
)
=>
{
if
(
!
z
.
domNode
)
{
z
.
domNode
=
createFakeLinesDiv
();
}
...
...
@@ -1408,7 +1397,7 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
}
public
setEnableSplitViewResizing
(
enableSplitViewResizing
:
boolean
):
void
{
var
newDisableSash
=
(
enableSplitViewResizing
===
false
);
let
newDisableSash
=
(
enableSplitViewResizing
===
false
);
if
(
this
.
_disableSash
!==
newDisableSash
)
{
this
.
_disableSash
=
newDisableSash
;
...
...
@@ -1421,11 +1410,11 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
}
public
layout
(
sashRatio
:
number
=
this
.
_sashRatio
):
number
{
var
w
=
this
.
_dataSource
.
getWidth
();
var
contentWidth
=
w
-
DiffEditorWidget
.
ENTIRE_DIFF_OVERVIEW_WIDTH
;
let
w
=
this
.
_dataSource
.
getWidth
();
let
contentWidth
=
w
-
DiffEditorWidget
.
ENTIRE_DIFF_OVERVIEW_WIDTH
;
var
sashPosition
=
Math
.
floor
((
sashRatio
||
0.5
)
*
contentWidth
);
var
midPoint
=
Math
.
floor
(
0.5
*
contentWidth
);
let
sashPosition
=
Math
.
floor
((
sashRatio
||
0.5
)
*
contentWidth
);
let
midPoint
=
Math
.
floor
(
0.5
*
contentWidth
);
sashPosition
=
this
.
_disableSash
?
midPoint
:
sashPosition
||
midPoint
;
...
...
@@ -1454,9 +1443,9 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
}
private
onSashDrag
(
e
:
ISashEvent
):
void
{
var
w
=
this
.
_dataSource
.
getWidth
();
var
contentWidth
=
w
-
DiffEditorWidget
.
ENTIRE_DIFF_OVERVIEW_WIDTH
;
var
sashPosition
=
this
.
layout
((
this
.
_startSashPosition
+
(
e
.
currentX
-
e
.
startX
))
/
contentWidth
);
let
w
=
this
.
_dataSource
.
getWidth
();
let
contentWidth
=
w
-
DiffEditorWidget
.
ENTIRE_DIFF_OVERVIEW_WIDTH
;
let
sashPosition
=
this
.
layout
((
this
.
_startSashPosition
+
(
e
.
currentX
-
e
.
startX
))
/
contentWidth
);
this
.
_sashRatio
=
sashPosition
/
contentWidth
;
...
...
@@ -1486,29 +1475,21 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
}
_getViewZones
(
lineChanges
:
editorCommon
.
ILineChange
[],
originalForeignVZ
:
editorCommon
.
IEditorWhitespace
[],
modifiedForeignVZ
:
editorCommon
.
IEditorWhitespace
[],
originalEditor
:
editorBrowser
.
ICodeEditor
,
modifiedEditor
:
editorBrowser
.
ICodeEditor
):
IEditorsZones
{
var
c
=
new
SideBySideViewZonesComputer
(
lineChanges
,
originalForeignVZ
,
modifiedForeignVZ
);
let
c
=
new
SideBySideViewZonesComputer
(
lineChanges
,
originalForeignVZ
,
modifiedForeignVZ
);
return
c
.
getViewZones
();
}
_getOriginalEditorDecorations
(
lineChanges
:
editorCommon
.
ILineChange
[],
ignoreTrimWhitespace
:
boolean
,
originalEditor
:
editorBrowser
.
ICodeEditor
,
modifiedEditor
:
editorBrowser
.
ICodeEditor
):
IEditorDiffDecorations
{
var
result
:
IEditorDiffDecorations
=
{
let
result
:
IEditorDiffDecorations
=
{
decorations
:
[],
overviewZones
:
[]
},
i
:
number
,
length
:
number
,
j
:
number
,
lengthJ
:
number
,
lineChange
:
editorCommon
.
ILineChange
,
charChange
:
editorCommon
.
ICharChange
,
lineNumber
:
number
,
startColumn
:
number
,
endColumn
:
number
,
originalModel
=
originalEditor
.
getModel
();
for
(
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
lineChange
=
lineChanges
[
i
];
};
let
originalModel
=
originalEditor
.
getModel
();
for
(
let
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
let
lineChange
=
lineChanges
[
i
];
if
(
isChangeOrDelete
(
lineChange
))
{
...
...
@@ -1527,11 +1508,13 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
));
if
(
lineChange
.
charChanges
)
{
for
(
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
charChange
=
lineChange
.
charChanges
[
j
];
for
(
let
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
let
charChange
=
lineChange
.
charChanges
[
j
];
if
(
isChangeOrDelete
(
charChange
))
{
if
(
ignoreTrimWhitespace
)
{
for
(
lineNumber
=
charChange
.
originalStartLineNumber
;
lineNumber
<=
charChange
.
originalEndLineNumber
;
lineNumber
++
)
{
for
(
let
lineNumber
=
charChange
.
originalStartLineNumber
;
lineNumber
<=
charChange
.
originalEndLineNumber
;
lineNumber
++
)
{
let
startColumn
:
number
;
let
endColumn
:
number
;
if
(
lineNumber
===
charChange
.
originalStartLineNumber
)
{
startColumn
=
charChange
.
originalStartColumn
;
}
else
{
...
...
@@ -1558,23 +1541,15 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
_getModifiedEditorDecorations
(
lineChanges
:
editorCommon
.
ILineChange
[],
ignoreTrimWhitespace
:
boolean
,
originalEditor
:
editorBrowser
.
ICodeEditor
,
modifiedEditor
:
editorBrowser
.
ICodeEditor
):
IEditorDiffDecorations
{
var
result
:
IEditorDiffDecorations
=
{
let
result
:
IEditorDiffDecorations
=
{
decorations
:
[],
overviewZones
:
[]
},
i
:
number
,
length
:
number
,
j
:
number
,
lengthJ
:
number
,
lineChange
:
editorCommon
.
ILineChange
,
charChange
:
editorCommon
.
ICharChange
,
lineNumber
:
number
,
startColumn
:
number
,
endColumn
:
number
,
modifiedModel
=
modifiedEditor
.
getModel
();
for
(
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
lineChange
=
lineChanges
[
i
];
};
let
modifiedModel
=
modifiedEditor
.
getModel
();
for
(
let
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
let
lineChange
=
lineChanges
[
i
];
if
(
isChangeOrInsert
(
lineChange
))
{
...
...
@@ -1592,11 +1567,13 @@ class DiffEdtorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffEd
));
if
(
lineChange
.
charChanges
)
{
for
(
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
charChange
=
lineChange
.
charChanges
[
j
];
for
(
let
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
let
charChange
=
lineChange
.
charChanges
[
j
];
if
(
isChangeOrInsert
(
charChange
))
{
if
(
ignoreTrimWhitespace
)
{
for
(
lineNumber
=
charChange
.
modifiedStartLineNumber
;
lineNumber
<=
charChange
.
modifiedEndLineNumber
;
lineNumber
++
)
{
for
(
let
lineNumber
=
charChange
.
modifiedStartLineNumber
;
lineNumber
<=
charChange
.
modifiedEndLineNumber
;
lineNumber
++
)
{
let
startColumn
:
number
;
let
endColumn
:
number
;
if
(
lineNumber
===
charChange
.
modifiedStartLineNumber
)
{
startColumn
=
charChange
.
modifiedStartColumn
;
}
else
{
...
...
@@ -1679,21 +1656,18 @@ class DiffEdtorWidgetInline extends DiffEditorWidgetStyle implements IDiffEditor
}
_getViewZones
(
lineChanges
:
editorCommon
.
ILineChange
[],
originalForeignVZ
:
editorCommon
.
IEditorWhitespace
[],
modifiedForeignVZ
:
editorCommon
.
IEditorWhitespace
[],
originalEditor
:
editorBrowser
.
ICodeEditor
,
modifiedEditor
:
editorBrowser
.
ICodeEditor
):
IEditorsZones
{
var
computer
=
new
InlineViewZonesComputer
(
lineChanges
,
originalForeignVZ
,
modifiedForeignVZ
,
originalEditor
,
modifiedEditor
);
let
computer
=
new
InlineViewZonesComputer
(
lineChanges
,
originalForeignVZ
,
modifiedForeignVZ
,
originalEditor
,
modifiedEditor
);
return
computer
.
getViewZones
();
}
_getOriginalEditorDecorations
(
lineChanges
:
editorCommon
.
ILineChange
[],
ignoreTrimWhitespace
:
boolean
,
originalEditor
:
editorBrowser
.
ICodeEditor
,
modifiedEditor
:
editorBrowser
.
ICodeEditor
):
IEditorDiffDecorations
{
var
result
:
IEditorDiffDecorations
=
{
let
result
:
IEditorDiffDecorations
=
{
decorations
:
[],
overviewZones
:
[]
},
i
:
number
,
length
:
number
,
lineChange
:
editorCommon
.
ILineChange
;
};
for
(
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
lineChange
=
lineChanges
[
i
];
for
(
let
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
l
et
l
ineChange
=
lineChanges
[
i
];
// Add overview zones in the overview ruler
if
(
isChangeOrDelete
(
lineChange
))
{
...
...
@@ -1713,23 +1687,15 @@ class DiffEdtorWidgetInline extends DiffEditorWidgetStyle implements IDiffEditor
_getModifiedEditorDecorations
(
lineChanges
:
editorCommon
.
ILineChange
[],
ignoreTrimWhitespace
:
boolean
,
originalEditor
:
editorBrowser
.
ICodeEditor
,
modifiedEditor
:
editorBrowser
.
ICodeEditor
):
IEditorDiffDecorations
{
var
result
:
IEditorDiffDecorations
=
{
let
result
:
IEditorDiffDecorations
=
{
decorations
:
[],
overviewZones
:
[]
},
i
:
number
,
length
:
number
,
lineChange
:
editorCommon
.
ILineChange
,
j
:
number
,
lengthJ
:
number
,
charChange
:
editorCommon
.
ICharChange
,
lineNumber
:
number
,
startColumn
:
number
,
endColumn
:
number
,
modifiedModel
=
modifiedEditor
.
getModel
();
for
(
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
lineChange
=
lineChanges
[
i
];
};
let
modifiedModel
=
modifiedEditor
.
getModel
();
for
(
let
i
=
0
,
length
=
lineChanges
.
length
;
i
<
length
;
i
++
)
{
let
lineChange
=
lineChanges
[
i
];
// Add decorations & overview zones
if
(
isChangeOrInsert
(
lineChange
))
{
...
...
@@ -1745,11 +1711,13 @@ class DiffEdtorWidgetInline extends DiffEditorWidgetStyle implements IDiffEditor
));
if
(
lineChange
.
charChanges
)
{
for
(
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
charChange
=
lineChange
.
charChanges
[
j
];
for
(
let
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
let
charChange
=
lineChange
.
charChanges
[
j
];
if
(
isChangeOrInsert
(
charChange
))
{
if
(
ignoreTrimWhitespace
)
{
for
(
lineNumber
=
charChange
.
modifiedStartLineNumber
;
lineNumber
<=
charChange
.
modifiedEndLineNumber
;
lineNumber
++
)
{
for
(
let
lineNumber
=
charChange
.
modifiedStartLineNumber
;
lineNumber
<=
charChange
.
modifiedEndLineNumber
;
lineNumber
++
)
{
let
startColumn
:
number
;
let
endColumn
:
number
;
if
(
lineNumber
===
charChange
.
modifiedStartLineNumber
)
{
startColumn
=
charChange
.
modifiedStartColumn
;
}
else
{
...
...
@@ -1805,14 +1773,11 @@ class InlineViewZonesComputer extends ViewZonesComputer {
}
_produceModifiedFromDiff
(
lineChange
:
editorCommon
.
ILineChange
,
lineChangeOriginalLength
:
number
,
lineChangeModifiedLength
:
number
):
IMyViewZone
{
var
decorations
:
InlineDecoration
[]
=
[],
j
:
number
,
lengthJ
:
number
,
charChange
:
editorCommon
.
ICharChange
;
let
decorations
:
InlineDecoration
[]
=
[];
if
(
lineChange
.
charChanges
)
{
for
(
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
charChange
=
lineChange
.
charChanges
[
j
];
for
(
let
j
=
0
,
lengthJ
=
lineChange
.
charChanges
.
length
;
j
<
lengthJ
;
j
++
)
{
let
charChange
=
lineChange
.
charChanges
[
j
];
if
(
isChangeOrDelete
(
charChange
))
{
decorations
.
push
(
new
InlineDecoration
(
new
Range
(
charChange
.
originalStartLineNumber
,
charChange
.
originalStartColumn
,
charChange
.
originalEndLineNumber
,
charChange
.
originalEndColumn
),
...
...
@@ -1822,13 +1787,12 @@ class InlineViewZonesComputer extends ViewZonesComputer {
}
}
var
html
:
string
[]
=
[],
lineNumber
:
number
;
for
(
lineNumber
=
lineChange
.
originalStartLineNumber
;
lineNumber
<=
lineChange
.
originalEndLineNumber
;
lineNumber
++
)
{
let
html
:
string
[]
=
[];
for
(
let
lineNumber
=
lineChange
.
originalStartLineNumber
;
lineNumber
<=
lineChange
.
originalEndLineNumber
;
lineNumber
++
)
{
html
=
html
.
concat
(
this
.
renderOriginalLine
(
lineNumber
-
lineChange
.
originalStartLineNumber
,
this
.
originalModel
,
this
.
modifiedEditorConfiguration
,
this
.
modifiedEditorTabSize
,
lineNumber
,
decorations
));
}
var
domNode
=
document
.
createElement
(
'
div
'
);
let
domNode
=
document
.
createElement
(
'
div
'
);
domNode
.
className
=
'
view-lines line-delete
'
;
domNode
.
innerHTML
=
html
.
join
(
''
);
Configuration
.
applyFontInfoSlow
(
domNode
,
this
.
modifiedEditorConfiguration
.
fontInfo
);
...
...
@@ -1892,7 +1856,7 @@ function createDecoration(startLineNumber: number, startColumn: number, endLineN
}
function
createFakeLinesDiv
():
HTMLElement
{
var
r
=
document
.
createElement
(
'
div
'
);
let
r
=
document
.
createElement
(
'
div
'
);
r
.
className
=
'
diagonal-fill
'
;
return
r
;
}
src/vs/editor/common/commands/replaceCommand.ts
浏览文件 @
c80de308
...
...
@@ -35,8 +35,8 @@ export class ReplaceCommand implements editorCommon.ICommand {
}
public
computeCursorState
(
model
:
editorCommon
.
ITokenizedModel
,
helper
:
editorCommon
.
ICursorStateComputerData
):
Selection
{
var
inverseEditOperations
=
helper
.
getInverseEditOperations
();
var
srcRange
=
inverseEditOperations
[
0
].
range
;
let
inverseEditOperations
=
helper
.
getInverseEditOperations
();
let
srcRange
=
inverseEditOperations
[
0
].
range
;
return
new
Selection
(
srcRange
.
endLineNumber
,
srcRange
.
endColumn
,
...
...
@@ -53,8 +53,8 @@ export class ReplaceCommandWithoutChangingPosition extends ReplaceCommand {
}
public
computeCursorState
(
model
:
editorCommon
.
ITokenizedModel
,
helper
:
editorCommon
.
ICursorStateComputerData
):
Selection
{
var
inverseEditOperations
=
helper
.
getInverseEditOperations
();
var
srcRange
=
inverseEditOperations
[
0
].
range
;
let
inverseEditOperations
=
helper
.
getInverseEditOperations
();
let
srcRange
=
inverseEditOperations
[
0
].
range
;
return
new
Selection
(
srcRange
.
startLineNumber
,
srcRange
.
startColumn
,
...
...
@@ -76,8 +76,8 @@ export class ReplaceCommandWithOffsetCursorState extends ReplaceCommand {
}
public
computeCursorState
(
model
:
editorCommon
.
ITokenizedModel
,
helper
:
editorCommon
.
ICursorStateComputerData
):
Selection
{
var
inverseEditOperations
=
helper
.
getInverseEditOperations
();
var
srcRange
=
inverseEditOperations
[
0
].
range
;
let
inverseEditOperations
=
helper
.
getInverseEditOperations
();
let
srcRange
=
inverseEditOperations
[
0
].
range
;
return
new
Selection
(
srcRange
.
endLineNumber
+
this
.
_lineNumberDeltaOffset
,
srcRange
.
endColumn
+
this
.
_columnDeltaOffset
,
...
...
src/vs/editor/common/commands/shiftCommand.ts
浏览文件 @
c80de308
...
...
@@ -22,9 +22,9 @@ export class ShiftCommand implements ICommand {
public
static
unshiftIndentCount
(
line
:
string
,
column
:
number
,
tabSize
:
number
):
number
{
// Determine the visible column where the content starts
var
contentStartVisibleColumn
=
CursorMoveHelper
.
visibleColumnFromColumn2
(
line
,
column
,
tabSize
);
let
contentStartVisibleColumn
=
CursorMoveHelper
.
visibleColumnFromColumn2
(
line
,
column
,
tabSize
);
var
desiredTabStop
=
CursorMoveHelper
.
prevTabColumn
(
contentStartVisibleColumn
,
tabSize
);
let
desiredTabStop
=
CursorMoveHelper
.
prevTabColumn
(
contentStartVisibleColumn
,
tabSize
);
// The `desiredTabStop` is a multiple of `tabSize` => determine the number of indents
return
desiredTabStop
/
tabSize
;
...
...
@@ -32,9 +32,9 @@ export class ShiftCommand implements ICommand {
public
static
shiftIndentCount
(
line
:
string
,
column
:
number
,
tabSize
:
number
):
number
{
// Determine the visible column where the content starts
var
contentStartVisibleColumn
=
CursorMoveHelper
.
visibleColumnFromColumn2
(
line
,
column
,
tabSize
);
let
contentStartVisibleColumn
=
CursorMoveHelper
.
visibleColumnFromColumn2
(
line
,
column
,
tabSize
);
var
desiredTabStop
=
CursorMoveHelper
.
nextTabColumn
(
contentStartVisibleColumn
,
tabSize
);
let
desiredTabStop
=
CursorMoveHelper
.
nextTabColumn
(
contentStartVisibleColumn
,
tabSize
);
// The `desiredTabStop` is a multiple of `tabSize` => determine the number of indents
return
desiredTabStop
/
tabSize
;
...
...
@@ -154,7 +154,7 @@ export class ShiftCommand implements ICommand {
public
computeCursorState
(
model
:
ITokenizedModel
,
helper
:
ICursorStateComputerData
):
Selection
{
if
(
this
.
_useLastEditRangeForCursorEndPosition
)
{
var
lastOp
=
helper
.
getInverseEditOperations
()[
0
];
let
lastOp
=
helper
.
getInverseEditOperations
()[
0
];
return
new
Selection
(
lastOp
.
range
.
endLineNumber
,
lastOp
.
range
.
endColumn
,
lastOp
.
range
.
endLineNumber
,
lastOp
.
range
.
endColumn
);
}
return
helper
.
getTrackedSelection
(
this
.
_selectionId
);
...
...
src/vs/editor/common/commands/surroundSelectionCommand.ts
浏览文件 @
c80de308
...
...
@@ -36,9 +36,9 @@ export class SurroundSelectionCommand implements ICommand {
}
public
computeCursorState
(
model
:
ITokenizedModel
,
helper
:
ICursorStateComputerData
):
Selection
{
var
inverseEditOperations
=
helper
.
getInverseEditOperations
();
var
firstOperationRange
=
inverseEditOperations
[
0
].
range
;
var
secondOperationRange
=
inverseEditOperations
[
1
].
range
;
let
inverseEditOperations
=
helper
.
getInverseEditOperations
();
let
firstOperationRange
=
inverseEditOperations
[
0
].
range
;
let
secondOperationRange
=
inverseEditOperations
[
1
].
range
;
return
new
Selection
(
firstOperationRange
.
endLineNumber
,
...
...
src/vs/editor/common/commands/trimTrailingWhitespaceCommand.ts
浏览文件 @
c80de308
...
...
@@ -20,9 +20,9 @@ export class TrimTrailingWhitespaceCommand implements editorCommon.ICommand {
}
public
getEditOperations
(
model
:
editorCommon
.
ITokenizedModel
,
builder
:
editorCommon
.
IEditOperationBuilder
):
void
{
var
ops
=
trimTrailingWhitespace
(
model
,
[]);
for
(
var
i
=
0
,
len
=
ops
.
length
;
i
<
len
;
i
++
)
{
var
op
=
ops
[
i
];
let
ops
=
trimTrailingWhitespace
(
model
,
[]);
for
(
let
i
=
0
,
len
=
ops
.
length
;
i
<
len
;
i
++
)
{
let
op
=
ops
[
i
];
builder
.
addEditOperation
(
op
.
range
,
op
.
text
);
}
...
...
@@ -48,29 +48,22 @@ export function trimTrailingWhitespace(model: editorCommon.ITextModel, cursors:
});
// Reduce multiple cursors on the same line and only keep the last one on the line
for
(
var
i
=
cursors
.
length
-
2
;
i
>=
0
;
i
--
)
{
for
(
let
i
=
cursors
.
length
-
2
;
i
>=
0
;
i
--
)
{
if
(
cursors
[
i
].
lineNumber
===
cursors
[
i
+
1
].
lineNumber
)
{
// Remove cursor at `i`
cursors
.
splice
(
i
,
1
);
}
}
var
r
:
editorCommon
.
IIdentifiedSingleEditOperation
[]
=
[],
cursorIndex
=
0
,
cursorLen
=
cursors
.
length
,
lineNumber
:
number
,
lineCount
:
number
,
lineContent
:
string
,
minEditColumn
:
number
,
maxLineColumn
:
number
,
fromColumn
:
number
,
// toColumn:number,
lastNonWhitespaceIndex
:
number
;
for
(
lineNumber
=
1
,
lineCount
=
model
.
getLineCount
();
lineNumber
<=
lineCount
;
lineNumber
++
)
{
lineContent
=
model
.
getLineContent
(
lineNumber
);
maxLineColumn
=
lineContent
.
length
+
1
;
minEditColumn
=
0
;
let
r
:
editorCommon
.
IIdentifiedSingleEditOperation
[]
=
[];
let
rLen
=
0
;
let
cursorIndex
=
0
;
let
cursorLen
=
cursors
.
length
;
for
(
let
lineNumber
=
1
,
lineCount
=
model
.
getLineCount
();
lineNumber
<=
lineCount
;
lineNumber
++
)
{
let
lineContent
=
model
.
getLineContent
(
lineNumber
);
let
maxLineColumn
=
lineContent
.
length
+
1
;
let
minEditColumn
=
0
;
if
(
cursorIndex
<
cursorLen
&&
cursors
[
cursorIndex
].
lineNumber
===
lineNumber
)
{
minEditColumn
=
cursors
[
cursorIndex
].
column
;
...
...
@@ -85,9 +78,9 @@ export function trimTrailingWhitespace(model: editorCommon.ITextModel, cursors:
continue
;
}
lastNonWhitespaceIndex
=
strings
.
lastNonWhitespaceIndex
(
lineContent
);
l
et
l
astNonWhitespaceIndex
=
strings
.
lastNonWhitespaceIndex
(
lineContent
);
fromColumn
=
0
;
let
fromColumn
=
0
;
if
(
lastNonWhitespaceIndex
===
-
1
)
{
// Entire line is whitespace
fromColumn
=
1
;
...
...
@@ -100,11 +93,11 @@ export function trimTrailingWhitespace(model: editorCommon.ITextModel, cursors:
}
fromColumn
=
Math
.
max
(
minEditColumn
,
fromColumn
);
r
.
push
(
EditOperation
.
delete
(
new
Range
(
r
[
rLen
++
]
=
EditOperation
.
delete
(
new
Range
(
lineNumber
,
fromColumn
,
lineNumber
,
maxLineColumn
))
)
;
));
}
return
r
;
}
\ No newline at end of file
}
src/vs/editor/common/commonCodeEditor.ts
浏览文件 @
c80de308
...
...
@@ -33,7 +33,7 @@ import { CommandsRegistry } from 'vs/platform/commands/common/commands';
import
EditorContextKeys
=
editorCommon
.
EditorContextKeys
;
var
EDITOR_ID
=
0
;
let
EDITOR_ID
=
0
;
export
abstract
class
CommonCodeEditor
extends
EventEmitter
implements
editorCommon
.
ICommonCodeEditor
{
...
...
src/vs/editor/common/config/commonEditorConfig.ts
浏览文件 @
c80de308
...
...
@@ -338,7 +338,7 @@ class InternalEditorOptionsHelper {
private
static
_sanitizeScrollbarOpts
(
raw
:
editorCommon
.
IEditorScrollbarOptions
,
mouseWheelScrollSensitivity
:
number
):
editorCommon
.
InternalEditorScrollbarOptions
{
var
visibilityFromString
=
(
visibility
:
string
)
=>
{
let
visibilityFromString
=
(
visibility
:
string
)
=>
{
switch
(
visibility
)
{
case
'
hidden
'
:
return
ScrollbarVisibility
.
Hidden
;
...
...
src/vs/editor/common/modes/supports.ts
浏览文件 @
c80de308
...
...
@@ -101,10 +101,10 @@ export class ScopedLineTokens {
}
}
const
enum
IgnoreBracketsInTokens
{
value
=
StandardTokenType
.
Comment
|
StandardTokenType
.
String
|
StandardTokenType
.
RegEx
}
export
function
ignoreBracketsInToken
(
standardTokenType
:
StandardTokenType
):
boolean
{
return
(
standardTokenType
===
StandardTokenType
.
Comment
||
standardTokenType
===
StandardTokenType
.
String
||
standardTokenType
===
StandardTokenType
.
RegEx
);
return
(
standardTokenType
&
IgnoreBracketsInTokens
.
value
)
!==
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录