@@ -21,12 +21,14 @@ import { GCodeTreeParser } from './providers/gcodeTreeParser';
2121import { Control } from '../control' ;
2222import { Logger } from '../util/logger' ;
2323import { ViewCommands } from './viewCommands' ;
24+ import { Messages } from '../util/messages' ;
2425
2526const NavTreeViewInfo = {
2627 ViewId : 'gcode.views.navTree' ,
2728 ViewName : 'Nav Tree' ,
28- CONFIG : {
29- AUTOREF : 'navTree.autoRefresh' ,
29+ Config : {
30+ AutoRefresh : 'views.navTree.autoRefresh' ,
31+ MaxAutoRefresh : 'views.maxAutoRefresh' ,
3032 } ,
3133 Context : Contexts . ViewsNavTreeEnabled ,
3234} ;
@@ -53,10 +55,10 @@ export class NavTreeView extends GView<NavTreeNode> {
5355 // Initialize StatusBar
5456 this . _statusbar = Control . statusBarController ;
5557
56- this . _autoRefresh = < boolean > configuration . getParam ( NavTreeViewInfo . CONFIG . AUTOREF ) ;
58+ this . _autoRefresh = < boolean > configuration . getParam ( NavTreeViewInfo . Config . AutoRefresh ) ;
5759
5860 if ( this . _autoRefresh ) {
59- this . refresh ( ) ;
61+ void this . refresh ( ) ;
6062 }
6163 }
6264
@@ -92,7 +94,7 @@ export class NavTreeView extends GView<NavTreeNode> {
9294 ) ;
9395
9496 if ( this . _autoRefresh ) {
95- this . refresh ( ) ;
97+ void this . refresh ( ) ;
9698 }
9799 }
98100 } else {
@@ -120,7 +122,7 @@ export class NavTreeView extends GView<NavTreeNode> {
120122 ) ;
121123
122124 if ( this . _autoRefresh ) {
123- this . refresh ( ) ;
125+ void this . refresh ( ) ;
124126 }
125127 }
126128 } else {
@@ -133,8 +135,8 @@ export class NavTreeView extends GView<NavTreeNode> {
133135 }
134136
135137 protected onConfigurationChanged ( e : ConfigurationChangeEvent ) {
136- if ( configuration . changed ( e , NavTreeViewInfo . CONFIG . AUTOREF ) ) {
137- this . _autoRefresh = < boolean > configuration . getParam ( NavTreeViewInfo . CONFIG . AUTOREF ) ;
138+ if ( configuration . changed ( e , NavTreeViewInfo . Config . AutoRefresh ) ) {
139+ this . _autoRefresh = < boolean > configuration . getParam ( NavTreeViewInfo . Config . AutoRefresh ) ;
138140 Logger . log ( `Nav Tree AutoRefresh: ${ this . _autoRefresh ? 'Enabled' : 'Disabled' } ` ) ;
139141 }
140142 }
@@ -149,7 +151,7 @@ export class NavTreeView extends GView<NavTreeNode> {
149151 void Control . setContext ( Contexts . ViewsNavTreeEnabled , true ) ;
150152 }
151153
152- this . refresh ( ) ;
154+ void this . refresh ( ) ;
153155 }
154156 } ,
155157 this ,
@@ -165,12 +167,28 @@ export class NavTreeView extends GView<NavTreeNode> {
165167 ) ;
166168 }
167169
168- protected refresh ( element ?: NavTreeNode ) : void {
169- if ( this . parseTree ( ) ) {
170- if ( element ) {
171- this . _onDidChangeTreeData . fire ( element ) ;
170+ protected async refresh ( element ?: NavTreeNode ) : Promise < void > {
171+ if ( this . _editor && this . _editor . document ) {
172+ if (
173+ this . _editor . document . lineCount > < number > configuration . getParam ( NavTreeViewInfo . Config . MaxAutoRefresh )
174+ ) {
175+ if ( await Messages . showRefreshWarningMessage ( ) ) {
176+ if ( this . parseTree ( ) ) {
177+ if ( element ) {
178+ this . _onDidChangeTreeData . fire ( element ) ;
179+ } else {
180+ this . _onDidChangeTreeData . fire ( undefined ) ;
181+ }
182+ }
183+ }
172184 } else {
173- this . _onDidChangeTreeData . fire ( undefined ) ;
185+ if ( this . parseTree ( ) ) {
186+ if ( element ) {
187+ this . _onDidChangeTreeData . fire ( element ) ;
188+ } else {
189+ this . _onDidChangeTreeData . fire ( undefined ) ;
190+ }
191+ }
174192 }
175193 }
176194 }
0 commit comments