forked from karthikvishnu/fsharpbinding
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFSharpProjectFileNodeExtension.fs
More file actions
27 lines (21 loc) · 951 Bytes
/
Copy pathFSharpProjectFileNodeExtension.fs
File metadata and controls
27 lines (21 loc) · 951 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace FSharp.MonoDevelop
open System
open System.IO
open MonoDevelop.Core
open MonoDevelop.Ide.Gui.Components
open MonoDevelop.Projects
type FSharpProjectFileNodeExtension() =
inherit NodeBuilderExtension()
override x.CanBuildNode(dataType:Type) =
// Extend any file belonging to a F# project
typedefof<ProjectFile>.IsAssignableFrom (dataType)
override x.CompareObjects(thisNode:ITreeNavigator, otherNode:ITreeNavigator) : int =
if otherNode.DataItem :? ProjectFile then
let file1 = thisNode.DataItem :?> ProjectFile
let file2 = otherNode.DataItem :?> ProjectFile
if (file1.Project <> null) && (file1.Project = file2.Project) && (file1.Project :? DotNetProject) && ((file1.Project :?> DotNetProject).LanguageName = "F#") then
file1.Project.Files.IndexOf(file1).CompareTo(file2.Project.Files.IndexOf(file2))
else
NodeBuilder.DefaultSort
else
NodeBuilder.DefaultSort