/// <summary>
        /// Displays completion after typing a space after a step keyword
        /// </summary>
        protected override bool ShouldCompletionBeDiplayed(SnapshotPoint caret, char?ch)
        {
            if (ch == null)
            {
                return(true);
            }

            if (GherkinStepCompletionSource.IsKeywordCompletion(caret))
            {
                return(GherkinStepCompletionSource.IsKeywordPrefix(caret, languageService));
            }
            if (GherkinStepCompletionSource.IsStepLine(caret, languageService))
            {
                return(ch == ' ' && GherkinStepCompletionSource.IsKeywordPrefix(caret - 1, languageService));
            }

            return(false);
        }
        /// <summary>
        /// Displays completion after typing a space after a step keyword
        /// </summary>
        protected override bool ShouldCompletionBeDiplayed(SnapshotPoint caret, char?ch)
        {
            if (ch == null)
            {
                return(true);
            }

            if (GherkinStepCompletionSource.IsKeywordCompletion(caret))
            {
                return(GherkinStepCompletionSource.IsKeywordPrefix(caret, languageService));

//                var fileScope = languageService.GetFileScope();
//                GherkinDialect dialect = fileScope != null ? fileScope.GherkinDialect : languageService.ProjectScope.GherkinDialectServices.GetDefaultDialect();

                return(true);
            }
            if (GherkinStepCompletionSource.IsStepLine(caret, languageService))
            {
                return(ch == ' ' && GherkinStepCompletionSource.IsKeywordPrefix(caret - 1, languageService));
            }

            return(false);
        }