public static void LoadLanguages(this IEnumerable <Record> records) { foreach (IGrouping <string, Record> grouping in records.GroupBy(f => f.GetString(Identifiers.Language))) { LanguageDefinition language = LanguageDefinition.FromLanguage((Language)Enum.Parse(typeof(Language), grouping.Key)); foreach (Record record in grouping) { switch (record.EntityName) { case Identifiers.Modifier: { language.Modifiers.Add(CreateModifier(record)); break; } case Identifiers.Type: { language.Types.Add(CreateType(record)); break; } case Identifiers.Keyword: { language.Keywords.Add(CreateKeyword(record)); break; } } } } }
public static void LoadLanguages(this IEnumerable <Record> records) { foreach (IGrouping <string, Record> grouping in records.GroupBy(f => f.GetString(PropertyNames.Language))) { LanguageDefinition language = LanguageDefinition.FromLanguage(ParseHelpers.ParseLanguage(grouping.Key)); foreach (Record record in grouping) { switch (record.EntityName) { case PropertyNames.Modifier: { language.Modifiers.Add(MapModifierDefinition(record)); break; } case PropertyNames.Type: { language.Types.Add(MapTypeDefinition(record)); break; } case PropertyNames.Keyword: { language.Keywords.Add(MapKeywordDefinition(record)); break; } } } } }
public EnvironmentSnippetGenerator(SnippetEnvironment environment, LanguageDefinition languageDefinition) : base(languageDefinition) { Environment = environment; }
public LanguageSnippetGenerator(LanguageDefinition languageDefinition) { LanguageDefinition = languageDefinition; _generateTypeTags = LanguageDefinition.Types.Select(f => KnownTags.GenerateTypeTag(f.Name)).ToArray(); _generateModifierTags = LanguageDefinition.Modifiers.Select(f => KnownTags.GenerateModifierTag(f.Name)).ToArray(); }
public LanguageExecutionContext(Snippet snippet, LanguageDefinition language) : base(snippet) { Language = language; }
public EnvironmentExecutionContext(Snippet snippet, LanguageDefinition language, SnippetEnvironment environment) : base(snippet, language) { Environment = environment; }
private List <Snippet> GenerateSnippetsCore(SnippetDirectory directory, bool isDevelopment = false) { var snippets = new List <Snippet>(); snippets.AddRange(EnumerateSnippets(directory.Path)); #if DEBUG foreach (Snippet snippet in snippets) { foreach (string keyword in snippet.Keywords) { if (keyword.StartsWith(KnownTags.MetaPrefix + KnownTags.GeneratePrefix, StringComparison.OrdinalIgnoreCase)) { Debug.Fail(keyword + "\r\n" + snippet.FilePath); break; } } } #endif snippets.AddRange(SnippetGenerator.GenerateAlternativeShortcuts(snippets)); if (!isDevelopment && directory.HasTag(KnownTags.GenerateXmlSnippets)) { switch (directory.Language) { case Language.Xml: case Language.Xaml: case Language.Html: case Language.Markdown: { snippets.AddRange(XmlSnippetGenerator.GenerateSnippets(directory.Language)); break; } } } KeywordDefinitionCollection keywords = LanguageDefinition.GetKeywords(directory.Language); if (keywords != null) { foreach (KeywordDefinition keyword in keywords) { if (keyword.IsDevelopment == isDevelopment) { Snippet snippet = keyword.ToSnippet(); snippet.Language = directory.Language; snippets.Add(snippet); } } } string autoGenerationPath = Path.Combine(directory.Path, KnownNames.AutoGeneration); if (Directory.Exists(autoGenerationPath)) { SnippetDirectory autoGenerationDirectory = directory.WithPath(autoGenerationPath); SnippetGenerator generator = CreateSnippetGenerator(autoGenerationDirectory); snippets.AddRange(generator.GenerateSnippets(autoGenerationDirectory.Path)); } return(snippets); }