コード例 #1
0
        void handleAutoPeriod(Key key)
        {
            if (!NSUserDefaults.StandardUserDefaults.BoolForKey(kPeriodShortcut))
            {
                return;
            }

            if (this.autoPeriodState == AutoPeriodState.FirstSpace)
            {
                if (key.type != Key.KeyType.Space)
                {
                    this.autoPeriodState = AutoPeriodState.NoSpace;
                    return;
                }

                Func <bool> charactersAreInCorrectState = () =>
                {
                    return(true);
                };

                if (charactersAreInCorrectState())
                {
                }

                this.autoPeriodState = AutoPeriodState.NoSpace;
            }
            else
            {
                if (key.type == Key.KeyType.Space)
                {
                    this.autoPeriodState = AutoPeriodState.FirstSpace;
                }
            }
        }
コード例 #2
0
        void handleAutoPeriod(Key key)
        {
            if (!NSUserDefaults.StandardUserDefaults.BoolForKey(kPeriodShortcut))
            {
                return;
            }

            if (this.autoPeriodState == AutoPeriodState.FirstSpace)
            {
                if (key.type != Key.KeyType.Space)
                {
                    this.autoPeriodState = AutoPeriodState.NoSpace;
                    return;
                }

                Func <bool> charactersAreInCorrectState = () =>
                {
                    var previousContext = this.TextDocumentProxy.DocumentContextBeforeInput;
                    if (previousContext == null || previousContext.Length < 3)
                    {
                        return(false);
                    }

                    var index = previousContext.Length - 1;

                    index = index - 1;
                    if (previousContext[index] != ' ')
                    {
                        return(false);
                    }

                    index = index - 1;
                    if (previousContext[index] != ' ')
                    {
                        return(false);
                    }

                    index = index - 1;
                    var chr = previousContext[index];
                    if (this.characterIsWhitespace(chr) || this.characterIsPunctuation(chr) || chr == ',')
                    {
                        return(false);
                    }
                    return(true);
                };

                if (charactersAreInCorrectState())
                {
                    this.TextDocumentProxy.DeleteBackward();
                    this.TextDocumentProxy.DeleteBackward();
                    this.TextDocumentProxy.InsertText(".");
                    this.TextDocumentProxy.InsertText(" ");
                }

                this.autoPeriodState = AutoPeriodState.NoSpace;
            }
            else
            {
                if (key.type == Key.KeyType.Space)
                {
                    this.autoPeriodState = AutoPeriodState.FirstSpace;
                }
            }
        }
コード例 #3
0
 void contextChanged()
 {
     this.setCapsIfNeeded();
     this.autoPeriodState = AutoPeriodState.NoSpace;
 }