File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -478,11 +478,23 @@ class EditorSpecialContribution
478478 type === monaco . editor . MouseTargetType . GUTTER_GLYPH_MARGIN
479479 ) {
480480 const lineNumber = event . target . position ! . lineNumber ;
481+ const lastLineNumber = this . propsService . props . documentModel . lineNumber ;
482+ let nextLineNumber : number | [ number , number ] = lineNumber ;
483+ if ( event ?. event ?. shiftKey && lastLineNumber ) {
484+ let startLineNumber = Array . isArray ( lastLineNumber )
485+ ? lastLineNumber [ 0 ]
486+ : lastLineNumber ;
487+ if ( startLineNumber > nextLineNumber ) {
488+ nextLineNumber = [ nextLineNumber , startLineNumber ] ;
489+ } else if ( startLineNumber < nextLineNumber ) {
490+ nextLineNumber = [ startLineNumber , nextLineNumber ] ;
491+ }
492+ }
481493 // 非受控
482494 if ( ! ( 'lineNumber' in this . propsService . props . documentModel ) ) {
483- highlightLine ( lineNumber ) ;
495+ highlightLine ( nextLineNumber ) ;
484496 }
485- this . propsService . props . documentModel . onLineNumberChange ?.( lineNumber ) ;
497+ this . propsService . props . documentModel . onLineNumberChange ?.( nextLineNumber ) ;
486498 }
487499 } )
488500 ) ;
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ export interface DocumentModel {
2626 /**
2727 * 行号变更事件
2828 */
29- onLineNumberChange ?: ( num : number ) => void ;
29+ onLineNumberChange ?: ( num : number | [ number , number ] ) => void ;
3030}
3131
3232export interface FSDocumentModel extends DocumentModel {
Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ const App = () => {
107107 </ Select >
108108 </ div >
109109 < div style = { { display : 'flex' } } >
110- < div style = { { width : '50%' , minHeight : 300 } } >
110+ < div style = { { width : '50%' , minHeight : 500 } } >
111111 { project ? (
112112 < EditorRenderer
113113 key = { project }
You can’t perform that action at this time.
0 commit comments