private bool IsBeginningOfExpression(char nextChar)
        {
            var caret = CaretPosition;
            var scriptWithNextChar = (Script ?? string.Empty).Insert(CaretPosition, nextChar.ToString(CultureInfo.InvariantCulture));

            caret++;
            return(provider.IsBeginningOfExpression(Script, CaretPosition) || provider.IsBeginningOfExpression(scriptWithNextChar, caret));
        }
Пример #2
0
        private bool IsBeginningOfExpression(char nextChar)
        {
            var caret  = CaretPosition;
            var script = (Script ?? string.Empty).Insert(CaretPosition, nextChar.ToString());

            caret++;
            return(provider.IsBeginningOfExpression(Script, CaretPosition) || provider.IsBeginningOfExpression(script, caret));
        }
 public ScriptEditorViewModel(IEventAggregator eventAggregator, ICodeCompletionProvider provider, CompletionPopupViewModel completionModel, FileSystem fileSystem)
 {
     this.eventAggregator = eventAggregator;
     this.provider        = provider;
     this.fileSystem      = fileSystem;
     Replacer             = new Replacer();
     CompletionWindow     = completionModel;
     Enabled = true;
     UpdateCompletionItems();
     eventAggregator.Subscribe(this);
     completionModel.Observers.Add(new OpenOnWriteAction(IsBeginningOfExpression));
     completionModel.Observers.Add(new CloseOnSteppingIntoEndOfExpression(() => provider.IsBeginningOfExpression(Script, CaretPosition)));
     completionModel.Observers.Add(new CloseOnWritingEndOfExpression(IsEndOfExpression));
 }