Exemple #1
0
        private static void SaveSubLimeCompletions(string filename, SublimeCompletions slcom)
        {
            string   json = JsonConvert.SerializeObject(slcom);
            FileInfo fi   = new FileInfo(Environment.CurrentDirectory + "/" + filename + ".sublime-completions");

            File.WriteAllText(fi.FullName, json);
        }
Exemple #2
0
 private static void AddToStepSublimeCompletions(SublimeCompletions slcom, List <BindingInfo> lst)
 {
     foreach (var bindingInfo in lst)
     {
         slcom.completions.Add(bindingInfo.BindingType + " " + GetSampleText(bindingInfo));
     }
 }
Exemple #3
0
        public string ToSublime2CompletionList()
        {
            var sc = new SublimeCompletions();

            foreach (var f in this.OrderBy(lf => lf.Library).ThenBy(lf => lf.Name))
            {
                var completion = new SublimeCompletions.Completion
                {
                    Trigger = $"{f.Library}.{f.Name}"
                };

                var sb = new StringBuilder();

                if (f.ParameterList.Any())
                {
                    sb
                    .Append($"{f.Library}.{f.Name}(");

                    var parameters = f.Method.GetParameters()
                                     .ToList();

                    for (int i = 0; i < parameters.Count; i++)
                    {
                        sb
                        .Append("${")
                        .Append(i + 1)
                        .Append(":");

                        if (parameters[i].IsOptional)
                        {
                            sb.Append($"[{parameters[i].Name}]");
                        }
                        else
                        {
                            sb.Append(parameters[i].Name);
                        }

                        sb.Append("}");

                        if (i < parameters.Count - 1)
                        {
                            sb.Append(",");
                        }
                    }

                    sb.Append(")");
                }
                else
                {
                    sb.Append($"{f.Library}.{f.Name}()");
                }

                completion.Contents = sb.ToString();
                sc.Completions.Add(completion);
            }

            return(JsonConvert.SerializeObject(sc));
        }
Exemple #4
0
        public void CreateSublimeFiles()
        {
            List <BindingInfo> lst = new List <BindingInfo>();

            Assembly[] systemAssembly = AppDomain.CurrentDomain.GetAssemblies();
            Assembly   ass            = System.Reflection.Assembly.GetExecutingAssembly();

            SublimeCompletions allStepDefinitions = new SublimeCompletions();

            allStepDefinitions.scope = "source.feature , text.gherkin.feature";

            string[] nameValueCollection = ConfigurationManager.AppSettings.AllKeys;


            SublimeCompletions slcom = new SublimeCompletions();

            slcom.scope = "source.feature , text.gherkin.feature";

            BindingCollector pCollector = new BindingCollector();

            pCollector.BuildBindingsFromAssembly(ass, lst);

            AddToStepSublimeCompletions(slcom, lst);
            AddToStepSublimeCompletions(allStepDefinitions, lst);

            SaveSubLimeCompletions(ass.GetName().Name, slcom);


            SaveSubLimeCompletions("StepDefinitions", allStepDefinitions);

            string codeBase    = Assembly.GetExecutingAssembly().CodeBase;
            string name        = Path.GetFileName(codeBase);
            string specFlow    = ConfigurationManager.AppSettings["specFlow"];
            string projectName = ConfigurationManager.AppSettings["projectName"];

            SublimeBuild buildFile = new SublimeBuild();

            buildFile.shell = "true";
            buildFile.cmds.Add(Environment.CurrentDirectory + "\\" + name);
            buildFile.cmds.Add(specFlow + " generateAll " + projectName + " /force /verbose");
            buildFile.file_regex = "^  (.*)\\(([0-9]*),([0-9]*)";

            buildFile.BuildSublimeBuildPackage();
        }