Esempio n. 1
0
 protected override CodeFormattingContext CreateFormatterContext(
     CodeFormatProfile profile,
     ITreeNode firstNode,
     ITreeNode lastNode,
     AdditionalFormatterParameters parameters,
     ICustomFormatterInfoProvider provider
     ) => new CodeFormattingContext(this, firstNode, lastNode, profile, FormatterLoggerProvider.FormatterLogger, parameters);
Esempio n. 2
0
 public override ITreeRange Format(
     ITreeNode firstElement,
     ITreeNode lastElement,
     CodeFormatProfile profile,
     AdditionalFormatterParameters parameters = null
     )
 => new TreeRange(firstElement, lastElement);
        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));
                        }
                    }
                }
            }
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
 protected override CodeFormattingContext CreateFormatterContext(CodeFormatProfile profile, ITreeNode firstNode, ITreeNode lastNode, AdditionalFormatterParameters parameters, ICustomFormatterInfoProvider provider, int stageNumber)
 {
     throw new System.NotImplementedException();
 }