From: Jan P. <jp...@us...> - 2006-10-28 18:11:57
|
Update of /cvsroot/e-p-i-c/org.epic.perleditor-test/src-pde/org/epic/perleditor/editors In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv30663/src-pde/org/epic/perleditor/editors Modified Files: Tag: stable TestSmartTyping.java Keyboard.java Log Message: Added a test for bug [ 1576126 ] Smart typing for quotes should be turned off in comments. Index: TestSmartTyping.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor-test/src-pde/org/epic/perleditor/editors/TestSmartTyping.java,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -d -r1.3 -r1.3.2.1 --- TestSmartTyping.java 12 Apr 2006 19:02:21 -0000 1.3 +++ TestSmartTyping.java 28 Oct 2006 18:11:51 -0000 1.3.2.1 @@ -92,6 +92,16 @@ Keyboard.typeString("'"); Keyboard.typeString(";"); assertEquals("print 'aaa';", testIface.getText()); + + testIface.clear(); + + Keyboard.typeString("# ' ok {"); + assertEquals("# ' ok {}", testIface.getText()); + + testIface.clear(); + + Keyboard.typeString("=comment\nLet's go"); + assertEquals("=comment\nLet's go", testIface.getText()); } finally { Index: Keyboard.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor-test/src-pde/org/epic/perleditor/editors/Keyboard.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- Keyboard.java 9 Sep 2005 11:27:45 -0000 1.1 +++ Keyboard.java 28 Oct 2006 18:11:51 -0000 1.1.2.1 @@ -82,47 +82,64 @@ for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); - - boolean uppercase; - if (Character.isUpperCase(c)) - { - c = Character.toLowerCase(c); - uppercase = true; - } - else if (uppercaseChars.contains(new Character(c))) - { - uppercase = true; - } - else uppercase = false; - - Event e; - if (uppercase) + if (c == '\n') { + Event e; + e = new Event(); e.type = SWT.KeyDown; - e.keyCode = SWT.SHIFT; + e.keyCode = 13; + display.post(e); + + e = new Event(); + e.type = SWT.KeyUp; + e.keyCode = 13; display.post(e); } - - e = new Event(); - e.type = SWT.KeyDown; - e.character = c; - if (uppercase) e.stateMask = SWT.SHIFT; - display.post(e); - - e = new Event(); - e.type = SWT.KeyUp; - e.character = c; - if (uppercase) e.stateMask = SWT.SHIFT; - display.post(e); - - if (uppercase) + else { + boolean uppercase; + if (Character.isUpperCase(c)) + { + c = Character.toLowerCase(c); + uppercase = true; + } + else if (uppercaseChars.contains(new Character(c))) + { + uppercase = true; + } + else uppercase = false; + + Event e; + + if (uppercase) + { + e = new Event(); + e.type = SWT.KeyDown; + e.keyCode = SWT.SHIFT; + display.post(e); + } + + e = new Event(); + e.type = SWT.KeyDown; + e.character = c; + if (uppercase) e.stateMask = SWT.SHIFT; + display.post(e); + e = new Event(); e.type = SWT.KeyUp; - e.keyCode = SWT.SHIFT; + e.character = c; + if (uppercase) e.stateMask = SWT.SHIFT; display.post(e); + + if (uppercase) + { + e = new Event(); + e.type = SWT.KeyUp; + e.keyCode = SWT.SHIFT; + display.post(e); + } } while (display.readAndDispatch()); |