Add support for c-Left/c-Right
This commit is contained in:
		@@ -736,6 +736,17 @@ class Editor
 | 
				
			|||||||
                        if ($cursorPos < mb_strlen($value))
 | 
					                        if ($cursorPos < mb_strlen($value))
 | 
				
			||||||
                            $cursorPos++;
 | 
					                            $cursorPos++;
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case "k{CLEFT}":
 | 
				
			||||||
 | 
					                        while ($cursorPos > 0) {
 | 
				
			||||||
 | 
					                            $cursorPos--;
 | 
				
			||||||
 | 
					                            if (mb_substr($value, $cursorPos - 1, 1) == " ") {
 | 
				
			||||||
 | 
					                                break;
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case "k{CRIGHT}":
 | 
				
			||||||
 | 
					                        $cursorPos = min(mb_strlen($value), (mb_strpos($value, " ", $cursorPos) ?: mb_strlen($value)) + 1);
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
                    case "k{HOME}":
 | 
					                    case "k{HOME}":
 | 
				
			||||||
                        $cursorPos = 0;
 | 
					                        $cursorPos = 0;
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -112,9 +112,15 @@ class Terminal
 | 
				
			|||||||
            } elseif (strncmp($this->inputBuffer, "\e[C", 3) === 0) {
 | 
					            } elseif (strncmp($this->inputBuffer, "\e[C", 3) === 0) {
 | 
				
			||||||
                $this->inputBuffer = mb_substr($this->inputBuffer, 3);
 | 
					                $this->inputBuffer = mb_substr($this->inputBuffer, 3);
 | 
				
			||||||
                return "k{RIGHT}";
 | 
					                return "k{RIGHT}";
 | 
				
			||||||
 | 
					            } elseif (strncmp($this->inputBuffer, "\e[1;5C", 6) === 0) {
 | 
				
			||||||
 | 
					                $this->inputBuffer = mb_substr($this->inputBuffer, 6);
 | 
				
			||||||
 | 
					                return "k{CRIGHT}";
 | 
				
			||||||
            } elseif (strncmp($this->inputBuffer, "\e[D", 3) === 0) {
 | 
					            } elseif (strncmp($this->inputBuffer, "\e[D", 3) === 0) {
 | 
				
			||||||
                $this->inputBuffer = mb_substr($this->inputBuffer, 3);
 | 
					                $this->inputBuffer = mb_substr($this->inputBuffer, 3);
 | 
				
			||||||
                return "k{LEFT}";
 | 
					                return "k{LEFT}";
 | 
				
			||||||
 | 
					            } elseif (strncmp($this->inputBuffer, "\e[1;5D", 6) === 0) {
 | 
				
			||||||
 | 
					                $this->inputBuffer = mb_substr($this->inputBuffer, 6);
 | 
				
			||||||
 | 
					                return "k{CLEFT}";
 | 
				
			||||||
            } elseif (strncmp($this->inputBuffer, "\e[H", 3) === 0) {
 | 
					            } elseif (strncmp($this->inputBuffer, "\e[H", 3) === 0) {
 | 
				
			||||||
                $this->inputBuffer = mb_substr($this->inputBuffer, 3);
 | 
					                $this->inputBuffer = mb_substr($this->inputBuffer, 3);
 | 
				
			||||||
                return "k{HOME}";
 | 
					                return "k{HOME}";
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user