diff --git a/ide/src/Fiona.IDE.ProjectManager/Models/ProjectFile.cs b/ide/src/Fiona.IDE.ProjectManager/Models/ProjectFile.cs index 48c50ef..44e2784 100644 --- a/ide/src/Fiona.IDE.ProjectManager/Models/ProjectFile.cs +++ b/ide/src/Fiona.IDE.ProjectManager/Models/ProjectFile.cs @@ -1,4 +1,5 @@ using Fiona.IDE.ProjectManager.Exceptions; +using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; namespace Fiona.IDE.ProjectManager.Models; @@ -7,6 +8,7 @@ public sealed class ProjectFile { public string Path { get; } public string Name { get; } + [NotMapped] public Class Class { get; } public const string Extension = "fn"; diff --git a/ide/src/Fiona.IDE.Tokenizer/TokenFactory.cs b/ide/src/Fiona.IDE.Tokenizer/TokenFactory.cs index d0c3f49..f642593 100644 --- a/ide/src/Fiona.IDE.Tokenizer/TokenFactory.cs +++ b/ide/src/Fiona.IDE.Tokenizer/TokenFactory.cs @@ -55,7 +55,7 @@ internal static class TokenFactory static TokenFactory() { - foreach (TokenType tokenType in Enum.GetValues()) + foreach (TokenType tokenType in Enum.GetValues().ToList().GetTokenTypesWithKeyword()) { TokenKeywords[tokenType] = tokenType.GetTokenKeyword(); } @@ -129,7 +129,7 @@ private static void AppendLines(StringBuilder body, IList lines, string } private static IEnumerable GetTokenTypesToCheck(string input) - => Enum.GetValues().Where(tokenType => input.Contains(TokenKeywords[tokenType])).Where(x => x != TokenType.Body); + => Enum.GetValues().Where(tokenType => input.Contains(TokenKeywords[tokenType])); private static IToken? GetStartUsingToken(string command) => GetTokenEquals(command, TokenType.UsingBegin); diff --git a/ide/src/Fiona.IDE.Tokenizer/TokenListHelper.cs b/ide/src/Fiona.IDE.Tokenizer/TokenListHelper.cs index 089c73b..47fde04 100644 --- a/ide/src/Fiona.IDE.Tokenizer/TokenListHelper.cs +++ b/ide/src/Fiona.IDE.Tokenizer/TokenListHelper.cs @@ -16,13 +16,13 @@ public static (List tokens, int endSearchIndex) GetUsingTokens(this IRea break; case TokenType.UsingEnd: isUsingPart = false; - break; + return (result, i); case TokenType.Using: if (isUsingPart) { result.Add(currentToken); } - return (result, i); + break; case TokenType.Comment: continue; } diff --git a/ide/src/Fiona.IDE.Tokenizer/TokenType.cs b/ide/src/Fiona.IDE.Tokenizer/TokenType.cs index ed375f1..a3bc723 100644 --- a/ide/src/Fiona.IDE.Tokenizer/TokenType.cs +++ b/ide/src/Fiona.IDE.Tokenizer/TokenType.cs @@ -40,8 +40,12 @@ public static string GetTokenKeyword(this TokenType tokenType) TokenType.Parameter => "input:", TokenType.Dependency => "inject:", TokenType.Namespace => "namespace:", - TokenType.Body => "", _ => throw new ArgumentOutOfRangeException(nameof(tokenType), tokenType, null) }; } + + public static IEnumerable GetTokenTypesWithKeyword(this List tokens) + { + return tokens.Where(x => x != TokenType.Body); + } } \ No newline at end of file