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; } } }
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; } } }
void contextChanged() { this.setCapsIfNeeded(); this.autoPeriodState = AutoPeriodState.NoSpace; }