@@ -50,6 +50,7 @@ import { Schemas } from 'vs/base/common/network';
50
50
import { IPaneCompositePartService } from 'vs/workbench/services/panecomposite/browser/panecomposite' ;
51
51
import { ActivitybarPart } from 'vs/workbench/browser/parts/activitybar/activitybarPart' ;
52
52
import { AuxiliaryBarPart , AUXILIARYBAR_ENABLED } from 'vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart' ;
53
+ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry' ;
53
54
54
55
type PanelAlignment = 'left' | 'center' | 'right' | 'justify' ;
55
56
@@ -183,6 +184,7 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
183
184
private themeService ! : IThemeService ;
184
185
private statusBarService ! : IStatusbarService ;
185
186
private logService ! : ILogService ;
187
+ private telemetryService ! : ITelemetryService ;
186
188
187
189
protected readonly state = {
188
190
fullscreen : false ,
@@ -268,6 +270,7 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
268
270
this . themeService = accessor . get ( IThemeService ) ;
269
271
this . extensionService = accessor . get ( IExtensionService ) ;
270
272
this . logService = accessor . get ( ILogService ) ;
273
+ this . telemetryService = accessor . get ( ITelemetryService ) ;
271
274
272
275
// Parts
273
276
this . editorService = accessor . get ( IEditorService ) ;
@@ -2166,6 +2169,38 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
2166
2169
height
2167
2170
} ;
2168
2171
2172
+ type StartupLayoutEvent = {
2173
+ activityBarVisible : boolean ;
2174
+ sideBarVisible : boolean ;
2175
+ auxiliaryBarVisible : boolean ;
2176
+ panelVisible : boolean ;
2177
+ statusbarVisible : boolean ;
2178
+ sideBarPosition : string ;
2179
+ panelPosition : string ;
2180
+ } ;
2181
+
2182
+ type StartupLayoutEventClassification = {
2183
+ activityBarVisible : { classification : 'SystemMetaData' , purpose : 'FeatureInsight' , isMeasurement : true } ;
2184
+ sideBarVisible : { classification : 'SystemMetaData' , purpose : 'FeatureInsight' , isMeasurement : true } ;
2185
+ auxiliaryBarVisible : { classification : 'SystemMetaData' , purpose : 'FeatureInsight' , isMeasurement : true } ;
2186
+ panelVisible : { classification : 'SystemMetaData' , purpose : 'FeatureInsight' , isMeasurement : true } ;
2187
+ statusbarVisible : { classification : 'SystemMetaData' , purpose : 'FeatureInsight' , isMeasurement : true } ;
2188
+ sideBarPosition : { classification : 'SystemMetaData' , purpose : 'FeatureInsight' ; } ;
2189
+ panelPosition : { classification : 'SystemMetaData' , purpose : 'FeatureInsight' ; } ;
2190
+ } ;
2191
+
2192
+ const layoutDescriptor : StartupLayoutEvent = {
2193
+ activityBarVisible : ! this . state . auxiliaryBar . hidden ,
2194
+ sideBarVisible : ! this . state . sideBar . hidden ,
2195
+ auxiliaryBarVisible : ! this . state . auxiliaryBar . hidden ,
2196
+ panelVisible : ! this . state . panel . hidden ,
2197
+ statusbarVisible : ! this . state . statusBar . hidden ,
2198
+ sideBarPosition : positionToString ( this . state . sideBar . position ) ,
2199
+ panelPosition : positionToString ( this . state . panel . position ) ,
2200
+ } ;
2201
+
2202
+ this . telemetryService . publicLog2 < StartupLayoutEvent , StartupLayoutEventClassification > ( 'startupLayout' , layoutDescriptor ) ;
2203
+
2169
2204
return result ;
2170
2205
}
2171
2206
0 commit comments