public override ITreeRange Format(ITreeNode firstElement, ITreeNode lastElement, CodeFormatProfile profile, AdditionalFormatterParameters parameters = null) { parameters = parameters ?? AdditionalFormatterParameters.Empty; var pointer = FormatterImplHelper.CreateRangePointer(firstElement, lastElement); ITreeNode lastNode = lastElement; var task = new FormatTask(firstElement, lastNode, profile); task.Adjust(this); if (task.FirstElement == null) { return(new TreeRange(firstElement, lastElement)); } //ASSERT(!IsWhitespaceToken(lastNode), "Whitespace node on the right side of the range"); var settings = GetFormattingSettings(task.FirstElement, parameters, myShaderLabFormattingInfo); settings.Settings.SetValue((key => key.WRAP_LINES), false); DoDeclarativeFormat(settings, myShaderLabFormattingInfo, null, new[] { task }, parameters, _ => false, null, FormatChildren, false); return(FormatterImplHelper.PointerToRange(pointer, firstElement, lastElement)); void FormatChildren(FormatTask formatTask, FmtSettings <ShaderLabFormatSettingsKey> formatSettings, CodeFormattingContext context) { using (var fmtProgress = parameters.ProgressIndicator.CreateSubProgress(1)) { Assertion.Assert(formatTask.FirstElement != null, "firstNode != null"); var file = formatTask.FirstElement.GetContainingFile(); if (file != null) { if (ShaderLabDoNotFormatInjectionsCookie.IsInjectionFormatterSuppressed) { return; } using (new SuspendInjectRegenerationCookie()) { FormatterImplHelper.RunFormatterForGeneratedLanguages(file, formatTask.FirstElement, lastNode, profile, it => true, PsiLanguageCategories.All, parameters.ChangeProgressIndicator(fmtProgress)); } } } } }
public override ITreeRange Format(ITreeNode firstElement, ITreeNode lastElement, CodeFormatProfile profile, AdditionalFormatterParameters parameters = null) { parameters ??= AdditionalFormatterParameters.Empty; var task = new FormatTask(firstElement, lastElement, profile); task.Adjust(this); if (task.FirstElement == null) { return(new TreeRange(firstElement, lastElement)); } var formatterSettings = GetFormattingSettings(task.FirstElement, parameters, _formatterInfoProvider); formatterSettings.Settings.SetValue(key => key.WRAP_LINES, false); DoDeclarativeFormat(formatterSettings, _formatterInfoProvider, null, new[] { task }, parameters, (settings => true), null, null, false); return(new TreeRange(firstElement, lastElement)); }
public override ITreeRange Format(ITreeNode firstElement, ITreeNode lastElement, CodeFormatProfile profile, AdditionalFormatterParameters parameters = null) { parameters ??= AdditionalFormatterParameters.Empty; var task = new FormatTask(firstElement, lastElement, profile); task.Adjust(this); if (task.FirstElement == null) { return(new TreeRange(firstElement, lastElement)); } if (!firstElement.FSharpFormatterEnabled()) { return(new TreeRange(firstElement, lastElement)); } var formatterSettings = GetFormattingSettings(task.FirstElement, parameters, myFormatterInfoProvider); DoDeclarativeFormat(formatterSettings, myFormatterInfoProvider, null, new[] { task }, parameters, null, null, null, false); return(new TreeRange(firstElement, lastElement)); }