public static void CheckString(IInterpolatedStringExpression literalExpression,
                                       DefaultHighlightingConsumer consumer, StringSettings settings, ISolution _solution, IContextBoundSettingsStore _settingsStore, IDaemonProcess _daemonProcess = null)
        {
            //ConstantValue val = literalExpression.ConstantValue;

            // Ignore it unless it's something we're re-evalutating
            if (_daemonProcess != null && !_daemonProcess.IsRangeInvalidated(literalExpression.GetDocumentRange()))
            {
                return;
            }

            foreach (var tokenNode in literalExpression.StringLiterals)
            {
                if (tokenNode == null)
                {
                    continue;
                }

                var tokenType = tokenNode.GetTokenType();

                if (tokenType == CSharpTokenType.INTERPOLATED_STRING_VERBATIM ||
                    tokenType == CSharpTokenType.INTERPOLATED_STRING_VERBATIM_START ||
                    tokenType == CSharpTokenType.INTERPOLATED_STRING_VERBATIM_MIDDLE ||
                    tokenType == CSharpTokenType.INTERPOLATED_STRING_VERBATIM_END
                    )
                {
                    if (settings.IgnoreVerbatimStrings)
                    {
                        return;
                    }
                }
                else if (tokenType != CSharpTokenType.INTERPOLATED_STRING_REGULAR_START &&
                         tokenType != CSharpTokenType.INTERPOLATED_STRING_REGULAR_MIDDLE &&
                         tokenType != CSharpTokenType.INTERPOLATED_STRING_REGULAR_END &&
                         tokenType != CSharpTokenType.INTERPOLATED_STRING_REGULAR)
                {
                    continue;
                }


                ISpellChecker spellChecker = SpellCheckManager.GetSpellChecker(_settingsStore, _solution, settings.DictionaryNames);

                StringSpellChecker.SpellCheck(
                    literalExpression.GetDocumentRange()
                    .Document,
                    tokenNode,
                    spellChecker,
                    _solution, consumer, _settingsStore, settings);
            }
        }
        public static void CheckString(ICSharpLiteralExpression literalExpression,
                                       DefaultHighlightingConsumer consumer, StringSettings settings, ISolution _solution, IContextBoundSettingsStore _settingsStore, IDaemonProcess _daemonProcess = null)
        {
            //ConstantValue val = literalExpression.ConstantValue;

            // Ignore it unless it's something we're re-evalutating
            if (_daemonProcess != null && !_daemonProcess.IsRangeInvalidated(literalExpression.GetDocumentRange()))
            {
                return;
            }

            ITokenNode tokenNode = literalExpression.Literal;

            if (tokenNode == null)
            {
                return;
            }

            if (tokenNode.GetTokenType() == CSharpTokenType.STRING_LITERAL_VERBATIM)
            {
                if (settings.IgnoreVerbatimStrings)
                {
                    return;
                }
            }
            else if (tokenNode.GetTokenType() != CSharpTokenType.STRING_LITERAL_REGULAR)
            {
                return;
            }

            ISpellChecker spellChecker = SpellCheckManager.GetSpellChecker(_settingsStore, _solution, settings.DictionaryNames);

            StringSpellChecker.SpellCheck(
                literalExpression.GetDocumentRange()
                .Document,
                tokenNode,
                spellChecker,
                _solution, consumer, _settingsStore, settings);
        }
        public void CheckString(
            ICSharpLiteralExpression literalExpression,
            IHighlightingConsumer highlightingConsumer, StringSettings settings)
        {
            //ConstantValue val = literalExpression.ConstantValue;

            // Ignore it unless it's something we're re-evalutating
            if (!this._daemonProcess.IsRangeInvalidated(literalExpression.GetDocumentRange()))
            {
                return;
            }



            // Ignore verbatim strings.
            if (settings.IgnoreVerbatimStrings &&
                LiteralService.Get(CSharpLanguage.Instance).IsVerbatimStringLiteral(literalExpression))
            {
                return;
            }

            ITokenNode tokenNode = literalExpression.Literal;

            if (tokenNode == null)
            {
                return;
            }

            if (tokenNode.GetTokenType() == CSharpTokenType.STRING_LITERAL)
            {
                ISpellChecker spellChecker = SpellCheckManager.GetSpellChecker(this._settingsStore, this._solution, settings.DictionaryNames);

                StringSpellChecker.SpellCheck(
                    literalExpression.GetDocumentRange().Document,
                    tokenNode,
                    spellChecker,
                    this._solution, highlightingConsumer, this._settingsStore, settings);
            }
        }