public GenerationResults Generate(IPsiFile file) { myFile = file; myGeneratedMethodBody = new GenerationResults(CSharpLanguage.Instance, "", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile)); myGeneratedFile = new GenerationResults(CSharpLanguage.Instance, "", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile)); AddOptions(myFile); if (myPackage != null) { foreach (var info in myClassesWithShortNamespace) { AddClassesOption(info.Definition, info.EndOffset, info.StartOffset, myPackage + "." + info.Text, myPackage.Length + 1); } foreach (var info in myShortNamespaces) { string name = info.Text; if((name.Length >= myPackage.Length) && (name.Substring(0,myPackage.Length).Equals(myPackage))) { AddNamespaceOption(info.EndOffset, info.StartOffset, info.Text); } else { AddNamespaceOption(info.EndOffset, info.StartOffset, myPackage + "." + info.Text, myPackage.Length + 1); } } } myGeneratedFile.Append(new GenerationResults(CSharpLanguage.Instance, "class ZZZ_Generated_Class{\n void foo(){\n", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile))); myGeneratedFile.Append(myGeneratedMethodBody); myGeneratedFile.Append(new GenerationResults(CSharpLanguage.Instance, "}\n }\n", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile))); return myGeneratedFile; }
public GenerationResults Generate(IPsiFile file) { myFile = file; myGeneratedMethodBody = new GenerationResults(CSharpLanguage.Instance, "", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile)); myGeneratedFile = new GenerationResults(CSharpLanguage.Instance, "", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile)); AddOptions(myFile); if (myPackage != null) { foreach (var info in myClassesWithShortNamespace) { AddClassesOption(info.Definition, info.EndOffset, info.StartOffset, myPackage + "." + info.Text, myPackage.Length + 1); } foreach (var info in myShortNamespaces) { string name = info.Text; if ((name.Length >= myPackage.Length) && (name.Substring(0, myPackage.Length).Equals(myPackage))) { AddNamespaceOption(info.EndOffset, info.StartOffset, info.Text); } else { AddNamespaceOption(info.EndOffset, info.StartOffset, myPackage + "." + info.Text, myPackage.Length + 1); } } } myGeneratedFile.Append(new GenerationResults(CSharpLanguage.Instance, "class ZZZ_Generated_Class{\n void foo(){\n", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile))); myGeneratedFile.Append(myGeneratedMethodBody); myGeneratedFile.Append(new GenerationResults(CSharpLanguage.Instance, "}\n }\n", GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile))); return(myGeneratedFile); }
private static ICollection <IPsiSymbol> Build(IPsiFile file) { var ret = new PsiCacheBuilder(); file.ProcessDescendants(ret); return(ret.GetSymbols()); }
protected PsiDaemonStageProcessBase(IDaemonProcess process, IContextBoundSettingsStore settingsStore) { myDaemonProcess = process; mySettingsStore = settingsStore; PsiServices = process.Solution.GetPsiServices(); myFile = PsiDaemonStageBase.GetPsiFile(myDaemonProcess.SourceFile); }
public override IEnumerable <string> VisitPsiFile(IPsiFile psiFile, PsiFmtStageContext context) { if (!myIsGenerated) { return(base.VisitPsiFile(psiFile, context)); } return(base.VisitPsiFile(psiFile, context)); }
private void VisitFile(IPsiFile element) { ITreeNode child = element.FirstChild; while (child != null) { if (child is IRuleDeclaration) { var declaration = child as IRuleDeclaration; { string name = declaration.DeclaredName; if (myDeclarations.ContainsKey(name)) { List <IDeclaration> list = myDeclarations.GetValue(name); list.Add(declaration); } else { var list = new List <IDeclaration> { declaration }; myDeclarations.Add(name, list); } } } child = child.NextSibling; } child = element.Interfaces; if (child != null) { child = child.FirstChild; while (child != null) { var declaration = child as IRuleDeclaration; if (declaration != null) { string name = declaration.DeclaredName; if (myDeclarations.ContainsKey(name)) { List <IDeclaration> list = myDeclarations.GetValue(name); list.Add(declaration); } else { var list = new List <IDeclaration> { declaration }; myDeclarations.Add(name, list); } } child = child.NextSibling; } } }
protected bool IsSupported(IPsiSourceFile sourceFile) { if (sourceFile == null || !sourceFile.IsValid()) { return(false); } IPsiFile psiFile = GetPsiFile(sourceFile); return(psiFile != null && psiFile.Language.Is <PsiLanguage>()); }
private void AddOptions(IPsiFile psiFile) { var child = psiFile.FirstChild; while (child != null) { var optionsDefinition = child as IOptionsDefinition; if (optionsDefinition != null) { AddOptions(optionsDefinition); return; } if (!child.IsWhitespaceToken()) { return; } child = child.NextSibling; } }
private void AddOptions(IPsiFile psiFile) { var child = psiFile.FirstChild; while (child != null) { var optionsDefinition = child as IOptionsDefinition; if (optionsDefinition != null) { AddOptions(optionsDefinition); return; } if (! child.IsWhitespaceToken()) { return; } child = child.NextSibling; } }
public static IEnumerable<string> GetAplicableKeywords(IPsiFile file, TreeTextRange referenceRange) { // statements part ... //var ret = new HashSet<string>(); IList<string> list = new List<string>(); var token = file.FindNodeAt(referenceRange) as ITokenNode; if (token == null) { return list; } ITreeNode currentNode; ITreeNode child; if (token.GetTokenType() == PsiTokenType.IDENTIFIER && token.Parent != null) { currentNode = token.Parent.Parent; child = token.Parent; } else { currentNode = token.Parent; child = token; } if (currentNode is IRuleDeclaration) { if (!IsInRuleBody(child)) { if (IsAfterName(child)) { list.Add("extras"); list.Add("options"); } if (IsBeforeName(child)) { list.Add("abstract"); list.Add("errorhandling"); list.Add("interface"); list.Add("private"); } if (HasNoName(child)) { list.Add("interfaces"); list.Add("paths"); } } else { list.Add("null"); list.Add("LIST"); list.Add("SEP"); } } else if (currentNode is IExtrasDefinition) { list.Add("get"); list.Add("returnType"); list.Add("isCashed"); } else if (currentNode is ISimpleExpression) { list.Add("null"); list.Add("LIST"); list.Add("SEP"); } else if (currentNode is IListExpression) { list.Add("SEP"); } else if (currentNode is IRuleParameters) { list.Add("cashed"); list.Add("isCashed"); list.Add("ROLE"); list.Add("getter"); } return list; }
public PsiFileStructure([NotNull] IPsiFile file, IContextBoundSettingsStore settingsStore) : base(file, settingsStore.EnumEntryIndices(GeneratedCodeSettingsAccessor.GeneratedCodeRegions).ToHashSet()) { myFile = file; ProcessFile(); }
public override string VisitPsiFile(IPsiFile psiFileParam, FormattingStageContext context) { return(""); }
private static ICollection<IPsiSymbol> Build(IPsiFile file) { var ret = new PsiCacheBuilder(); file.ProcessDescendants(ret); return ret.GetSymbols(); }
public static IEnumerable <string> GetAplicableKeywords(IPsiFile file, TreeTextRange referenceRange) { // statements part ... //var ret = new HashSet<string>(); IList <string> list = new List <string>(); var token = file.FindNodeAt(referenceRange) as ITokenNode; if (token == null) { return(list); } ITreeNode currentNode; ITreeNode child; if (token.GetTokenType() == PsiTokenType.IDENTIFIER && token.Parent != null) { currentNode = token.Parent.Parent; child = token.Parent; } else { currentNode = token.Parent; child = token; } if (currentNode is IRuleDeclaration) { if (!IsInRuleBody(child)) { if (IsAfterName(child)) { list.Add("extras"); list.Add("options"); } if (IsBeforeName(child)) { list.Add("abstract"); list.Add("errorhandling"); list.Add("interface"); list.Add("private"); } if (HasNoName(child)) { list.Add("interfaces"); list.Add("paths"); } } else { list.Add("null"); list.Add("LIST"); list.Add("SEP"); } } else if (currentNode is IExtrasDefinition) { list.Add("get"); list.Add("returnType"); list.Add("isCashed"); } else if (currentNode is ISimpleExpression) { list.Add("null"); list.Add("LIST"); list.Add("SEP"); } else if (currentNode is IListExpression) { list.Add("SEP"); } else if (currentNode is IRuleParameters) { list.Add("cashed"); list.Add("isCashed"); list.Add("ROLE"); list.Add("getter"); } return(list); }
private void VisitFile(IPsiFile element) { ITreeNode child = element.FirstChild; while (child != null) { if (child is IRuleDeclaration) { var declaration = child as IRuleDeclaration; { string name = declaration.DeclaredName; if (myDeclarations.ContainsKey(name)) { List<IDeclaration> list = myDeclarations.GetValue(name); list.Add(declaration); } else { var list = new List<IDeclaration> { declaration }; myDeclarations.Add(name, list); } } } child = child.NextSibling; } child = element.Interfaces; if (child != null) { child = child.FirstChild; while (child != null) { var declaration = child as IRuleDeclaration; if (declaration != null) { string name = declaration.DeclaredName; if (myDeclarations.ContainsKey(name)) { List<IDeclaration> list = myDeclarations.GetValue(name); list.Add(declaration); } else { var list = new List<IDeclaration> { declaration }; myDeclarations.Add(name, list); } } child = child.NextSibling; } } }