Exemplo n.º 1
0
        private void AddNamespaceOption(int endOffset, int startOffset, string optionValueText, int startInGenerated = 0)
        {
            var map = GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile);

            map.Add(new TreeTextRange <Generated>(new TreeOffset(6 + startInGenerated), new TreeOffset(6 + optionValueText.Length)),
                    new TreeTextRange <Original>(new TreeOffset(startOffset), new TreeOffset(endOffset)));
            myGeneratedFile.Append(new GenerationResults(CSharpLanguage.Instance, "using " + optionValueText + ";\n", map));
        }
Exemplo n.º 2
0
        private void AddStaticClassOption(int endOffset, int startOffset, string optionValueText, int startInGenerated)
        {
            var staticMap = GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile);

            staticMap.Add(new TreeTextRange <Generated>(new TreeOffset(14 + startInGenerated), new TreeOffset(optionValueText.Length + 14)),
                          new TreeTextRange <Original>(new TreeOffset(startOffset), new TreeOffset(endOffset)));
            myGeneratedFile.Append(new GenerationResults(CSharpLanguage.Instance, "using __alias=" + optionValueText + "\n", staticMap));
        }
Exemplo n.º 3
0
        private void AddClassOption(int endOffset, int startOffset, string optionValueText, int startInGenerated)
        {
            var map = GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile);

            map.Add(new TreeTextRange <Generated>(new TreeOffset(startInGenerated), new TreeOffset(optionValueText.Length)),
                    new TreeTextRange <Original>(new TreeOffset(startOffset), new TreeOffset(endOffset)));
            myGeneratedMethodBody.Append(new GenerationResults(CSharpLanguage.Instance, optionValueText + " a;\n", map));
        }
Exemplo n.º 4
0
        private void AddMethodOption(IOptionDefinition optionDefinition, int endOffset, int startOffset, string optionValueText)
        {
            int dotIndex  = optionValueText.LastIndexOf('.');
            var className = optionValueText.Substring(0, dotIndex);
            var classes   = optionDefinition.GetPsiServices().CacheManager.GetDeclarationsCache(optionDefinition.GetPsiModule(), false, true).GetTypeElementsByCLRName(className);

            if (classes.Count == 0)
            {
                string optionName = GetOptionNameWithoutQuotes(optionDefinition);
                if (OptionDeclaredElements.UnnecessaryOptionNames.Contains(optionName))
                {
                    return;
                }
            }

            var map = GeneratedRangeMapFactory.CreateGeneratedRangeMap(myFile);

            map.Add(new TreeTextRange <Generated>(new TreeOffset(8), new TreeOffset(optionValueText.Length + 8)),
                    new TreeTextRange <Original>(new TreeOffset(startOffset), new TreeOffset(endOffset)));
            myGeneratedMethodBody.Append(new GenerationResults(CSharpLanguage.Instance, "var a = " + optionValueText + ";\n", map));
        }
 /// <summary>Creates a new instance of <see cref="T4CSharpCodeGenerationResult"/> for a given file.</summary>
 /// <param name="file">The T4 file that will be used for code-behind generation.</param>
 public T4CSharpCodeGenerationResult([NotNull] IT4File file)
 {
     Builder           = new StringBuilder(1024);
     GeneratedRangeMap = GeneratedRangeMapFactory.CreateGeneratedRangeMap(file);
 }
Exemplo n.º 6
0
        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);
        }