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); }
private static void AddToStepSublimeCompletions(SublimeCompletions slcom, List <BindingInfo> lst) { foreach (var bindingInfo in lst) { slcom.completions.Add(bindingInfo.BindingType + " " + GetSampleText(bindingInfo)); } }
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)); }
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(); }