[jVi-cvs] jvi/src/com/raelity/jvi Options.java, 1.32, 1.33 ColonCommands.java, 1.18, 1.19 Buffer.ja
Brought to you by:
err
Update of /cvsroot/jvi/jvi/src/com/raelity/jvi In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv1449/jvi/src/com/raelity/jvi Modified Files: Options.java ColonCommands.java Buffer.java OptionsBeanBase.java G.java ViManager.java Edit.java ViTextView.java Log Message: - Allow cursor movement during insert mode. - Implement kludge/hack so that multiple editors into the same file works with visual select and highlight search. Problems because closing an editor might strand a highlight layer. Eventually the highlight layers need to be associated with Buffer, not TextView. Index: ColonCommands.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/ColonCommands.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ColonCommands.java 22 Apr 2007 02:29:15 -0000 1.18 --- ColonCommands.java 23 Apr 2007 06:48:01 -0000 1.19 *************** *** 939,942 **** --- 939,948 ---- register("testKeys", "testKeys", ACTION_testKeys); + ColonCommands.register("jviDump", "jviDump", new ActionListener() { + public void actionPerformed(ActionEvent e) { + ViManager.dump(System.err); + } + }); + // register("y", "yank", ACTION_yank); Index: Buffer.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/Buffer.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Buffer.java 21 Apr 2007 02:46:17 -0000 1.5 --- Buffer.java 23 Apr 2007 06:48:01 -0000 1.6 *************** *** 10,13 **** --- 10,15 ---- package com.raelity.jvi; + import javax.swing.text.Document; + /** * Buffer: structure that holds information about one file, primarily *************** *** 19,30 **** */ public class Buffer implements ViOptionBag { private int share; // the number of text views sharing this buffer public int getShare() { return share; } public void addShare() { share++; } ! public void removeShare() { share--; } /** Creates a new instance of Buffer, initialize values from Options. */ ! public Buffer() { initOptions(); } --- 21,40 ---- */ public class Buffer implements ViOptionBag { + Document doc; private int share; // the number of text views sharing this buffer public int getShare() { return share; } public void addShare() { share++; } ! public void removeShare() { ! share--; ! if(share == 0) { ! doc = null; ! } ! } ! public Document getDoc() { return doc; } /** Creates a new instance of Buffer, initialize values from Options. */ ! public Buffer(Document doc) { ! this.doc = doc; initOptions(); } Index: Edit.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/Edit.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Edit.java 22 Apr 2007 02:29:15 -0000 1.16 --- Edit.java 23 Apr 2007 06:48:01 -0000 1.17 *************** *** 296,299 **** --- 296,300 ---- // need_redraw = TRUE; break; + */ case K_HOME: *************** *** 310,314 **** ins_end(); break; - */ case K_LEFT: --- 311,314 ---- *************** *** 1321,1334 **** private static void ins_left() throws NotSupportedException { ! Normal.notImp("ins_left"); ! /* ! FPOS tpos; undisplay_dollar(); ! tpos = curwin->w_cursor; if (oneleft() == OK) { ! start_arrow(&tpos); ! //#ifdef RIGHTLEFT............#endif } --- 1321,1333 ---- private static void ins_left() throws NotSupportedException { ! ViFPOS tpos; undisplay_dollar(); ! ViFPOS cursor = G.curwin.getWCursor(); ! tpos = cursor.copy(); if (oneleft() == OK) { ! start_arrow(tpos); ! //#ifdef RIGHTLEFT............#endif } *************** *** 1337,1421 **** // previous line // ! else if (vim_strchr(p_ww, '[') != NULL && curwin->w_cursor.lnum > 1) { ! start_arrow(&tpos); ! --(curwin->w_cursor.lnum); ! coladvance(MAXCOL); ! curwin->w_set_curswant = TRUE; // so we stay at the end } else ! vim_beep(); ! */ } private static void ins_home() throws NotSupportedException { ! Normal.notImp("ins_home"); ! /* ! FPOS tpos; undisplay_dollar(); ! tpos = curwin->w_cursor; ! if ((mod_mask & MOD_MASK_CTRL)) ! curwin->w_cursor.lnum = 1; ! curwin->w_cursor.col = 0; ! curwin->w_curswant = 0; ! start_arrow(&tpos); ! */ } private static void ins_end() throws NotSupportedException { ! Normal.notImp("ins_end"); ! /* ! FPOS tpos; undisplay_dollar(); ! tpos = curwin->w_cursor; ! if ((mod_mask & MOD_MASK_CTRL)) ! curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count; ! coladvance(MAXCOL); ! curwin->w_curswant = MAXCOL; ! start_arrow(&tpos); ! */ } private static void ins_s_left() throws NotSupportedException { - Normal.notImp("ins_s_left"); - /* undisplay_dollar(); ! if (curwin->w_cursor.lnum > 1 || curwin->w_cursor.col > 0) { ! start_arrow(&curwin->w_cursor); ! (void)bck_word(1L, 0, FALSE); ! curwin->w_set_curswant = TRUE; } else ! vim_beep(); ! */ } private static void ins_right() throws NotSupportedException { - //Normal.notImp("ins_right"); undisplay_dollar(); if (Misc.gchar_cursor() != '\n') { ! //start_arrow(&curwin->w_cursor); ! start_arrow(G.curwin.getWCursor()); ! //#ifdef MULTI_BYTE............#endif ! //curwin->w_set_curswant = TRUE; ! //++curwin->w_cursor.col; G.curwin.setWSetCurswant(true); ! G.curwin.setCaretPosition(G.curwin.getWCursor().getOffset() +1); ! //#ifdef RIGHTLEFT............#endif } // if 'whichwrap' set for cursor in insert mode, may move the // cursor to the next line ! // NEEDSWORK: implement p_ww ']': ins_right: next line ok in insert mode ! /*else if (vim_strchr(p_ww, ']') != NULL ! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) { ! start_arrow(&curwin->w_cursor); ! curwin->w_set_curswant = TRUE; ! ++curwin->w_cursor.lnum; ! curwin->w_cursor.col = 0; ! }*/ else Util.vim_beep(); --- 1336,1413 ---- // previous line // ! //else if (vim_strchr(p_ww, '[') != NULL && curwin->w_cursor.lnum > 1) ! else if (G.p_ww_i_left.value && cursor.getLine() > 1) { ! start_arrow(tpos); ! G.curwin.setCaretPosition(cursor.getLine() - 1, 0); ! Misc.coladvance(MAXCOL); ! G.curwin.setWSetCurswant(true); // so we stay at the end } else ! Util.vim_beep(); } private static void ins_home() throws NotSupportedException { ! ViFPOS tpos; undisplay_dollar(); ! tpos = G.curwin.getWCursor().copy(); ! ! int line = G.curwin.getWCursor().getLine(); ! if ((G.mod_mask & MOD_MASK_CTRL) != 0) ! line = 1; ! int col = 0; ! G.curwin.setCaretPosition(line, col); ! G.curwin.setWCurswant(col); ! start_arrow(tpos); } private static void ins_end() throws NotSupportedException { ! ViFPOS tpos; undisplay_dollar(); ! tpos = G.curwin.getWCursor().copy(); ! if ((G.mod_mask & MOD_MASK_CTRL) != 0) { ! G.curwin.setCaretPosition(G.curwin.getLineCount(), 0); ! } ! Misc.coladvance(MAXCOL); ! G.curwin.setWCurswant(MAXCOL); ! start_arrow(tpos); } private static void ins_s_left() throws NotSupportedException { undisplay_dollar(); ! ! ViFPOS cursor = G.curwin.getWCursor(); ! if(cursor.getLine() > 1 || cursor.getColumn() > 0) { ! start_arrow(cursor); ! Search.bck_word(1, false, false); ! G.curwin.setWSetCurswant(true); } else ! Util.vim_beep(); } private static void ins_right() throws NotSupportedException { undisplay_dollar(); + ViFPOS cursor = G.curwin.getWCursor(); if (Misc.gchar_cursor() != '\n') { ! start_arrow(cursor); ! //#ifdef MULTI_BYTE............#endif G.curwin.setWSetCurswant(true); ! //++curwin->w_cursor.col; ! G.curwin.setCaretPosition(cursor.getOffset() +1); ! //#ifdef RIGHTLEFT............#endif } // if 'whichwrap' set for cursor in insert mode, may move the // cursor to the next line ! else if (G.p_ww_i_right.value ! && cursor.getLine() < G.curwin.getLineCount()) { ! start_arrow(cursor); ! G.curwin.setWSetCurswant(true); ! G.curwin.setCaretPosition(cursor.getLine() +1, 0); ! } else Util.vim_beep(); *************** *** 1423,1460 **** private static void ins_s_right() throws NotSupportedException { - Normal.notImp("ins_s_right"); - /* undisplay_dollar(); ! if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count ! || gchar_cursor() != NUL) { ! start_arrow(&curwin->w_cursor); ! (void)fwd_word(1L, 0, 0); ! curwin->w_set_curswant = TRUE; } else ! vim_beep(); ! */ } private static void ins_up() throws NotSupportedException { ! Normal.notImp("ins_up"); ! /* ! FPOS tpos; ! linenr_t old_topline; undisplay_dollar(); ! tpos = curwin->w_cursor; ! old_topline = curwin->w_topline; ! if (cursor_up(1L, TRUE) == OK) { ! if (old_topline != curwin->w_topline) ! update_screen(VALID); ! start_arrow(&tpos); ! //#ifdef CINDENT............#endif } else ! vim_beep(); ! */ } --- 1415,1447 ---- private static void ins_s_right() throws NotSupportedException { undisplay_dollar(); ! ViFPOS cursor = G.curwin.getWCursor(); ! if (cursor.getLine() < G.curwin.getLineCount() ! || Misc.gchar_cursor() != '\n') { ! start_arrow(cursor); ! Search.fwd_word(1, false, false); ! G.curwin.setWSetCurswant(true); } else ! Util.vim_beep(); } private static void ins_up() throws NotSupportedException { ! ViFPOS tpos; ! //int old_topline; undisplay_dollar(); ! tpos = G.curwin.getWCursor().copy(); ! //old_topline = curwin->w_topline; ! if (cursor_up(1, true) == OK) { ! //if (old_topline != curwin->w_topline) ! //update_screen(VALID); ! start_arrow(tpos); ! //#ifdef CINDENT............#endif } else ! Util.vim_beep(); } *************** *** 1477,1497 **** private static void ins_down() throws NotSupportedException { ! Normal.notImp("ins_down"); ! /* ! FPOS tpos; ! linenr_t old_topline = curwin->w_topline; undisplay_dollar(); ! tpos = curwin->w_cursor; ! if (cursor_down(1L, TRUE) == OK) { ! if (old_topline != curwin->w_topline) ! update_screen(VALID); ! start_arrow(&tpos); ! //#ifdef CINDENT............#endif } else ! vim_beep(); ! */ } --- 1464,1481 ---- private static void ins_down() throws NotSupportedException { ! ViFPOS tpos; ! //int old_topline = curwin->w_topline; undisplay_dollar(); ! tpos = G.curwin.getWCursor().copy(); ! if (cursor_down(1, true) == OK) { ! //if (old_topline != curwin->w_topline) ! //update_screen(VALID); ! start_arrow(tpos); ! //#ifdef CINDENT............#endif } else ! Util.vim_beep(); } Index: Options.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/Options.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** Options.java 21 Apr 2007 02:46:16 -0000 1.32 --- Options.java 23 Apr 2007 06:48:01 -0000 1.33 *************** *** 89,92 **** --- 89,94 ---- public static final String rightWrapNext = "viRightWrapNext"; public static final String tildeWrapNext = "viTildeWrapNext"; + public static final String insertLeftWrapPrevious = "viInsertLeftWrapPrevious"; + public static final String insertRightWrapNext = "viInsertRightWrapNext"; public static final String unnamedClipboard = "viUnnamedClipboard"; *************** *** 334,337 **** --- 336,349 ---- "\"~\" wraps to next line"); + G.p_ww_i_left = createBooleanOption(insertLeftWrapPrevious, false); + setupOptionDesc(cursorWrapList, insertLeftWrapPrevious, + "'whichwrap' 'ww' [ - <Left>", + "in Insert Mode <Left> wraps to previous line"); + + G.p_ww_i_right = createBooleanOption(insertRightWrapNext, false); + setupOptionDesc(cursorWrapList, insertRightWrapNext, + "'whichwrap' 'ww' ] - <Right>", + "in Insert Mode <Right> wraps to next line"); + ///////////////////////////////////////////////////////////////////// // Index: OptionsBeanBase.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/OptionsBeanBase.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** OptionsBeanBase.java 16 Apr 2007 22:24:55 -0000 1.12 --- OptionsBeanBase.java 23 Apr 2007 06:48:01 -0000 1.13 *************** *** 236,239 **** --- 236,257 ---- } + public void setViInsertLeftWrapPrevious(boolean arg) + throws PropertyVetoException { + put(Options.insertLeftWrapPrevious, arg); + } + + public boolean getViInsertLeftWrapPrevious() { + return getboolean(Options.insertLeftWrapPrevious); + } + + public void setViInsertRightWrapNext(boolean arg) + throws PropertyVetoException { + put(Options.insertRightWrapNext, arg); + } + + public boolean getViInsertRightWrapNext() { + return getboolean(Options.insertRightWrapNext); + } + public void setViSelectColor(Color arg) throws PropertyVetoException { put(Options.selectColor, arg); Index: ViManager.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/ViManager.java,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** ViManager.java 22 Apr 2007 02:29:15 -0000 1.62 --- ViManager.java 23 Apr 2007 06:48:01 -0000 1.63 *************** *** 64,68 **** private static final int minorVersion = 9; private static final int microVersion = 2; ! private static final String releaseTag = "x5"; private static final String release = "jVi " + ViManager.majorVersion --- 64,68 ---- private static final int minorVersion = 9; private static final int microVersion = 2; ! private static final String releaseTag = "x6"; private static final String release = "jVi " + ViManager.majorVersion *************** *** 120,123 **** --- 120,140 ---- return factory.getViTextView(editorPane); } + + /** get any text view, other than tv, which has buf KLUDGE HACK */ + public static ViTextView getAlternateTextView(ViTextView tv, Buffer buf) { + ViTextView tv01 = null; + Set<ViTextView> tvSet = factory.getViTextViewSet(); + for (ViTextView tv02 : tvSet) { + if(tv == tv02) + continue; + JEditorPane ep = tv02.getEditorComponent(); + if(ep != null) { + if(factory.getBuffer(ep) == buf) { + tv01 = tv02; + } + } + } + return tv01; + } public static Buffer getBuffer(JEditorPane editorPane) { *************** *** 608,611 **** --- 625,629 ---- static public void dump(PrintStream ps) { ps.println("-----------------------------------"); + /* ps.println("currentEditorPane = " + currentEditorPane ); ps.println("factory = " + factory ); *************** *** 616,626 **** ps.println("currentlyActive = " + currentlyActive ); ps.println("ignoreActivation = " + ignoreActivation ); ! int n1 = 0; ! for (ViTextView tv : factory.getViTextViewSet()) { ! n1++; } - if(n1 != 0) - ps.println("" + n1 + " ACTIVE TEXT VIEWS"); } } --- 634,670 ---- ps.println("currentlyActive = " + currentlyActive ); ps.println("ignoreActivation = " + ignoreActivation ); + */ + ps.println("currentEditorPane = " + G.curwin.getDisplayFileName()); + ps.println("factory = " + factory ); ! ps.println("textBuffers: " + textBuffers.size()); ! for (Object o : textBuffers) { ! ps.println("\t" + factory.getDisplayFilename(o) ! + ", " + o.getClass().getSimpleName()); ! } ! ps.println("textMRU: " + textMRU.size()); ! for (Object o : textMRU) { ! ps.println("\t" + factory.getDisplayFilename(o) ! + ", " + o.getClass().getSimpleName()); ! } ! ps.println("currentlyActive: " + (currentlyActive == null ? "none" ! : "" + factory.getDisplayFilename(currentlyActive) ! + ", " + currentlyActive.getClass().getSimpleName())); ! ps.println("ignoreActivation: " + (ignoreActivation == null ? "none" ! : "" + factory.getDisplayFilename(ignoreActivation) ! + ", " + ignoreActivation.getClass().getSimpleName())); ! ! Set<ViTextView> tvSet = factory.getViTextViewSet(); ! ps.println("TextViewSet: " + tvSet.size()); ! for (ViTextView tv : tvSet) { ! ps.println("\t" + tv.getDisplayFileName()); ! } ! ! Set<Buffer> bufSet = factory.getBufferSet(); ! ps.println("BufferSet: " + bufSet.size()); ! for (Buffer buf : bufSet) { ! ps.println("\t" + factory.getDisplayFilename(buf.doc) ! + ", share: " + buf.getShare()); } } } Index: G.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/G.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** G.java 14 Apr 2007 09:14:45 -0000 1.18 --- G.java 23 Apr 2007 06:48:01 -0000 1.19 *************** *** 100,103 **** --- 100,105 ---- static BooleanOption p_ww_rarrow; static BooleanOption p_ww_tilde; + static BooleanOption p_ww_i_left; + static BooleanOption p_ww_i_right; static BooleanOption p_cb; // clipboard, treat as boolean for 'unnamed' Index: ViTextView.java =================================================================== RCS file: /cvsroot/jvi/jvi/src/com/raelity/jvi/ViTextView.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** ViTextView.java 21 Apr 2007 02:46:17 -0000 1.16 --- ViTextView.java 23 Apr 2007 06:48:01 -0000 1.17 *************** *** 237,241 **** /** called after TV and Buffer are constructed */ ! public void startup(); /** going away, do any remaining cleanup */ --- 237,241 ---- /** called after TV and Buffer are constructed */ ! public void startup(Buffer buf); /** going away, do any remaining cleanup */ |