public bool TryCreateContext(ITextView textView, SnapshotPoint openingPoint, char openingBrace, char closingBrace, out IBraceCompletionContext context)
        {
            context = null;
            //if (!this.roslynInstalled.HasValue)
            //{
            //    this.roslynInstalled = new bool?(this.CheckRoslyn());
            //}
            //if (!this.roslynInstalled.Value)
            //{
            ITextDocument document = null;

            if (/*!this.ServiceRunning() ||*/ !this.TryGetTextDocument(textView, out document))
            {
                return(false);
            }
            Genero4glLanguageInfo languageInfo = new Genero4glLanguageInfo(/*this.CompilationHost,*/ this.completionBroker, openingPoint.Snapshot.TextBuffer, document.FilePath);

            if (!languageInfo.IsValidContext(openingPoint))
            {
                return(false);
            }
            switch (openingBrace)
            {
            //case '<':
            //    if (!languageInfo.IsPossibleTypeVariableDecl(openingPoint))
            //    {
            //        return false;
            //    }
            //    context = new NormalCompletionContext(languageInfo);
            //    return true;

            case '[':
            case '(':
                context = new NormalCompletionContext(languageInfo);
                return(true);

            case '{':
                context = new CurlyBraceContext(languageInfo);
                return(true);

            case '\'':
            case '"':
                context = new LiteralCompletionContext(languageInfo);
                return(true);
            }
            //}
            return(false);
        }
Exemplo n.º 2
0
 // Methods
 public LiteralCompletionContext(Genero4glLanguageInfo languageInfo)
     : base(languageInfo)
 {
 }
Exemplo n.º 3
0
 // Methods
 public CurlyBraceContext(Genero4glLanguageInfo languageInfo)
     : base(languageInfo)
 {
 }
Exemplo n.º 4
0
 // Methods
 public NormalCompletionContext(Genero4glLanguageInfo languageInfo)
 {
     this.LanguageInfo = languageInfo;
 }