@@ -116,21 +116,25 @@ private async IAsyncEnumerable<DiscoveryResult> FindAllSolutionsAndProjects(stri
116
116
if ( project != null )
117
117
project = TransformPathToUnix ( rootDir , project ) ;
118
118
119
+ // If the file is a CSharp code file and it's running on .NET 10 or greater, support single file compilation
120
+ bool isCSFile = item . EndsWith ( ".cs" , StringComparison . OrdinalIgnoreCase ) ;
121
+
119
122
// Process the condition checks to see if this item is valid or not
120
- return ( project , countOfSln , countOfProjs , countOfCode , countOfSpecial , itemWasDeleted , allProjectsFoundInSln ) switch
123
+ return ( project , countOfSln , countOfProjs , countOfCode , countOfSpecial , itemWasDeleted , allProjectsFoundInSln , isCSFile ) switch
121
124
{
122
- // Proj File, Sln#, Proj#, Code#, Spec#, Del, SlnHasPrj
123
- /* File del, no code/proj */ ( null , 0 , 0 , 0 , 0 , true , _ ) => null ,
124
- /* Too many solutions */ ( not null , > 1 , _, _, _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_TOOMANY , item , project ) ,
125
- /* Too many projs */ ( not null , 0 , > 1 , _, _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_TOOMANY , item , project ) ,
126
- /* SLN found */ ( not null , 1 , > 0 , _, _, _, true ) => new DiscoveryResult ( DiscoveryResult . RETURN_GOOD , item , project ) ,
127
- /* SLN found, missing proj */ ( not null , 1 , > 0 , _, _, _, false ) => new DiscoveryResult ( DiscoveryResult . RETURN_SLN_PROJ_MISSING , item , project ) ,
128
- /* SLN found no projs */ ( not null , 1 , 0 , _, _, false , _) => new DiscoveryResult ( DiscoveryResult . RETURN_SLN_NOPROJ , item , project ) ,
129
- /* SLN found no projs, del */ ( not null , 1 , 0 , _, _, true , _) => new DiscoveryResult ( DiscoveryResult . RETURN_GOOD , item , project ) ,
130
- /* Project found */ ( not null , 0 , 1 , _, _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_GOOD , item , project ) ,
131
- /* Code no proj */ ( null , 0 , 0 , > 0 , _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_NOPROJ , item , "" ) ,
132
- /* Code no proj */ ( null , 0 , 0 , _, > 0 , _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_NOPROJ , item , "" ) ,
133
- /* catch all */ _ => new DiscoveryResult ( DiscoveryResult . RETURN_NOPROJ , item , "CONDITION NOT FOUND" ) ,
125
+ // Proj File, Sln#, Proj#, Code#, Spec#, Del, SlnHasPrj, IsCSfile
126
+ /* File del, no code/proj */ ( null , 0 , 0 , 0 , 0 , true , _ , _ ) => null ,
127
+ /* Too many solutions */ ( not null , > 1 , _, _, _, _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_TOOMANY , item , project ) ,
128
+ /* Too many projs */ ( not null , 0 , > 1 , _, _, _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_TOOMANY , item , project ) ,
129
+ /* SLN found */ ( not null , 1 , > 0 , _, _, _, true , _) => new DiscoveryResult ( DiscoveryResult . RETURN_GOOD , item , project ) ,
130
+ /* SLN found, missing proj */ ( not null , 1 , > 0 , _, _, _, false , _) => new DiscoveryResult ( DiscoveryResult . RETURN_SLN_PROJ_MISSING , item , project ) ,
131
+ /* SLN found no projs */ ( not null , 1 , 0 , _, _, false , _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_SLN_NOPROJ , item , project ) ,
132
+ /* SLN found no projs, del */ ( not null , 1 , 0 , _, _, true , _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_GOOD , item , project ) ,
133
+ /* Project found */ ( not null , 0 , 1 , _, _, _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_GOOD , item , project ) ,
134
+ /* Single .cs file compile */ ( null , 0 , 0 , 1 , _ , _ , _ , true ) => new DiscoveryResult ( DiscoveryResult . RETURN_GOOD , item , item ) ,
135
+ /* Code no proj */ ( null , 0 , 0 , > 0 , _, _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_NOPROJ , item , "" ) ,
136
+ /* Code no proj */ ( null , 0 , 0 , _, > 0 , _, _, _) => new DiscoveryResult ( DiscoveryResult . RETURN_NOPROJ , item , "" ) ,
137
+ /* catch all */ _ => new DiscoveryResult ( DiscoveryResult . RETURN_NOPROJ , item , "CONDITION NOT FOUND" ) ,
134
138
} ;
135
139
}
136
140
0 commit comments