@@ -31,6 +31,7 @@ module internal FSharpClassificationTypes =
3131let [<Literal>] Enum = ClassificationTypeNames.EnumName
3232let [<Literal>] Property = " FSharp.Property"
3333let [<Literal>] Interface = ClassificationTypeNames.InterfaceName
34+ let [<Literal>] Disposable = " FSharp.Disposable"
3435
3536let getClassificationTypeName = function
3637| SemanticClassificationType.ReferenceType-> ReferenceType
@@ -46,6 +47,7 @@ module internal FSharpClassificationTypes =
4647| SemanticClassificationType.Enumeration-> Enum
4748| SemanticClassificationType.Property-> Property
4849| SemanticClassificationType.Interface-> Interface
50+ | SemanticClassificationType.Disposable-> Disposable
4951
5052module internal ClassificationDefinitions =
5153
@@ -67,11 +69,12 @@ module internal ClassificationDefinitions =
6769let themeService = serviceProvider.GetService( typeof< SVsColorThemeService>) :?> IVsColorThemeService
6870 themeService.CurrentTheme.ThemeId
6971
70- let colorData = // name, (light, dark)
71- [ FSharpClassificationTypes.Function, ( Colors.Black, Color.FromRgb( 220 uy, 220 uy, 220 uy))
72- FSharpClassificationTypes.MutableVar, ( Color.FromRgb( 160 uy, 128 uy, 0 uy), Color.FromRgb( 255 uy, 210 uy, 28 uy))
72+ let colorData = // name, (light, dark)
73+ [ FSharpClassificationTypes.Function, ( Colors.Black, Color.FromRgb( 220 uy, 220 uy, 220 uy))
74+ FSharpClassificationTypes.MutableVar, ( Color.FromRgb( 160 uy, 128 uy, 0 uy), Color.FromRgb( 255 uy, 210 uy, 28 uy))
7375 FSharpClassificationTypes.Printf, ( Color.FromRgb( 43 uy, 145 uy, 175 uy), Color.FromRgb( 78 uy, 220 uy, 176 uy))
74- FSharpClassificationTypes.Property, ( Colors.Black, Color.FromRgb( 220 uy, 220 uy, 220 uy)) ]
76+ FSharpClassificationTypes.Property, ( Colors.Black, Color.FromRgb( 220 uy, 220 uy, 220 uy))
77+ FSharpClassificationTypes.Disposable, ( Color.FromRgb( 43 uy, 145 uy, 175 uy), Color.FromRgb( 78 uy, 220 uy, 176 uy)) ]
7578
7679let setColors _ =
7780let fontAndColorStorage = serviceProvider.GetService( typeof< SVsFontAndColorStorage>) :?> IVsFontAndColorStorage
@@ -118,6 +121,9 @@ module internal ClassificationDefinitions =
118121[<Export; Name( FSharpClassificationTypes.Property); BaseDefinition( PredefinedClassificationTypeNames.FormalLanguage) >]
119122let FSharpPropertyClassificationType : ClassificationTypeDefinition = null
120123
124+ [<Export; Name( FSharpClassificationTypes.Disposable); BaseDefinition( PredefinedClassificationTypeNames.FormalLanguage) >]
125+ let FSharpDisposableClassificationType : ClassificationTypeDefinition = null
126+
121127[<Export( typeof< EditorFormatDefinition>) >]
122128[<ClassificationType( ClassificationTypeNames= FSharpClassificationTypes.Function) >]
123129[<Name( FSharpClassificationTypes.Function) >]
@@ -161,3 +167,14 @@ module internal ClassificationDefinitions =
161167
162168do self.DisplayName<- SR.FSharpPropertiesClassificationType.Value
163169 self.ForegroundColor<- theme.GetColor FSharpClassificationTypes.Property
170+
171+ [<Export( typeof< EditorFormatDefinition>) >]
172+ [<ClassificationType( ClassificationTypeNames= FSharpClassificationTypes.Disposable) >]
173+ [<Name( FSharpClassificationTypes.Disposable) >]
174+ [<UserVisible( true ) >]
175+ [<Order( After= PredefinedClassificationTypeNames.Keyword) >]
176+ type internal FSharpDisposableFormat [<ImportingConstructor>] ( theme : ThemeColors ) as self =
177+ inherit ClassificationFormatDefinition()
178+
179+ do self.DisplayName<- SR.FSharpDisposablesClassificationType.Value
180+ self.ForegroundColor<- theme.GetColor FSharpClassificationTypes.Disposable