@@ -185,6 +185,10 @@ class CommentingRangeDecorator {
185
185
this . _doUpdate ( editor , commentInfos ) ;
186
186
}
187
187
188
+ private _lineHasThread ( editor : ICodeEditor , lineRange : Range ) {
189
+ return editor . getDecorationsInRange ( lineRange ) ?. find ( decoration => decoration . options . description === CommentGlyphWidget . description ) ;
190
+ }
191
+
188
192
private _doUpdate ( editor : ICodeEditor , commentInfos : ICommentInfo [ ] , emphasisLine : number = - 1 , selectionRange : Range | undefined = this . _lastSelection ) {
189
193
const model = editor . getModel ( ) ;
190
194
if ( ! model ) {
@@ -215,7 +219,10 @@ class CommentingRangeDecorator {
215
219
intersectingSelectionRange = new Range ( intersectingSelectionRange . startLineNumber , 1 , intersectingSelectionRange . endLineNumber - 1 , 1 ) ;
216
220
}
217
221
commentingRangeDecorations . push ( new CommentingRangeDecoration ( editor , info . owner , info . extensionId , info . label , intersectingSelectionRange , this . multilineDecorationOptions , info . commentingRanges , true ) ) ;
218
- commentingRangeDecorations . push ( new CommentingRangeDecoration ( editor , info . owner , info . extensionId , info . label , intersectingEmphasisRange , this . hoverDecorationOptions , info . commentingRanges , true ) ) ;
222
+
223
+ if ( ! this . _lineHasThread ( editor , intersectingEmphasisRange ) ) {
224
+ commentingRangeDecorations . push ( new CommentingRangeDecoration ( editor , info . owner , info . extensionId , info . label , intersectingEmphasisRange , this . hoverDecorationOptions , info . commentingRanges , true ) ) ;
225
+ }
219
226
220
227
const beforeRangeEndLine = Math . min ( intersectingEmphasisRange . startLineNumber , intersectingSelectionRange . startLineNumber ) - 1 ;
221
228
const hasBeforeRange = rangeObject . startLineNumber <= beforeRangeEndLine ;
@@ -234,7 +241,10 @@ class CommentingRangeDecorator {
234
241
const beforeRange = new Range ( range . startLineNumber , 1 , emphasisLine - 1 , 1 ) ;
235
242
commentingRangeDecorations . push ( new CommentingRangeDecoration ( editor , info . owner , info . extensionId , info . label , beforeRange , this . decorationOptions , info . commentingRanges , true ) ) ;
236
243
}
237
- commentingRangeDecorations . push ( new CommentingRangeDecoration ( editor , info . owner , info . extensionId , info . label , new Range ( emphasisLine , 1 , emphasisLine , 1 ) , this . hoverDecorationOptions , info . commentingRanges , true ) ) ;
244
+ const emphasisRange = new Range ( emphasisLine , 1 , emphasisLine , 1 ) ;
245
+ if ( ! this . _lineHasThread ( editor , emphasisRange ) ) {
246
+ commentingRangeDecorations . push ( new CommentingRangeDecoration ( editor , info . owner , info . extensionId , info . label , emphasisRange , this . hoverDecorationOptions , info . commentingRanges , true ) ) ;
247
+ }
238
248
if ( emphasisLine < rangeObject . endLineNumber ) {
239
249
const afterRange = new Range ( emphasisLine + 1 , 1 , range . endLineNumber , 1 ) ;
240
250
commentingRangeDecorations . push ( new CommentingRangeDecoration ( editor , info . owner , info . extensionId , info . label , afterRange , this . decorationOptions , info . commentingRanges , true ) ) ;
0 commit comments