Thread: [Pydev-cvs] org.python.pydev/src/org/python/pydev/editor/actions PyUncomment.java, 1.6, 1.7 PyActio
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2006-07-19 23:43:55
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17561/src/org/python/pydev/editor/actions Modified Files: PyUncomment.java PyAction.java PyAddSingleBlockComment.java PyComment.java Log Message: Index: PyAction.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions/PyAction.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** PyAction.java 7 Jun 2006 16:54:40 -0000 1.29 --- PyAction.java 19 Jul 2006 23:43:52 -0000 1.30 *************** *** 35,38 **** --- 35,40 ---- return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); } + + // Always points to the current editor *************** *** 205,209 **** */ protected static void beep(Exception e) { ! PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay().beep(); e.printStackTrace(); } --- 207,215 ---- */ protected static void beep(Exception e) { ! try{ ! PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay().beep(); ! }catch(IllegalStateException x){ ! //ignore, workbench has still not been created ! } e.printStackTrace(); } *************** *** 401,403 **** --- 407,424 ---- return b.toString(); } + + + + /** + * @param ps the selection that contains the document + */ + protected void revealSelEndLine(PySelection ps) { + // Put cursor at the first area of the selection + int docLen = ps.getDoc().getLength()-1; + IRegion endLine = ps.getEndLine(); + if(endLine != null){ + int curOffset = endLine.getOffset(); + getTextEditor().selectAndReveal(curOffset<docLen?curOffset:docLen, 0); + } + } } Index: PyComment.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions/PyComment.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PyComment.java 19 Jul 2006 22:37:02 -0000 1.7 --- PyComment.java 19 Jul 2006 23:43:52 -0000 1.8 *************** *** 28,32 **** // Put cursor at the first area of the selection ! getTextEditor().selectAndReveal(ps.getEndLine().getOffset(), 0); } catch (Exception e) { beep(e); --- 28,32 ---- // Put cursor at the first area of the selection ! revealSelEndLine(ps); } catch (Exception e) { beep(e); Index: PyAddSingleBlockComment.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions/PyAddSingleBlockComment.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PyAddSingleBlockComment.java 25 Feb 2006 00:14:23 -0000 1.2 --- PyAddSingleBlockComment.java 19 Jul 2006 23:43:52 -0000 1.3 *************** *** 12,36 **** import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; import org.python.pydev.core.docutils.PySelection; import org.python.pydev.plugin.PydevPlugin; import org.python.pydev.plugin.PydevPrefs; ! public class PyAddSingleBlockComment extends PyAction{ /* Selection element */ - private PySelection ps; public void run(IAction action) { try { ! // Select from text editor ! ps = new PySelection(getTextEditor()); // Perform the action perform(ps); // Put cursor at the first area of the selection ! getTextEditor().selectAndReveal(ps.getEndLine().getOffset(), 0); } catch (Exception e) { beep(e); } } ! /** * Performs the action with a given PySelection --- 12,35 ---- import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; import org.python.pydev.core.docutils.PySelection; + import org.python.pydev.core.docutils.StringUtils; import org.python.pydev.plugin.PydevPlugin; import org.python.pydev.plugin.PydevPrefs; ! public class PyAddSingleBlockComment extends PyAction { /* Selection element */ public void run(IAction action) { try { ! PySelection ps = new PySelection(getTextEditor()); // Perform the action perform(ps); // Put cursor at the first area of the selection ! revealSelEndLine(ps); } catch (Exception e) { beep(e); } } ! /** * Performs the action with a given PySelection *************** *** 50,58 **** // For each line, comment them out for (i = ps.getStartLineIndex(); i <= ps.getEndLineIndex(); i++) { ! String line = ps.getLine(i).trim(); ! String fullCommentLine = getFullCommentLine(line); strbuf.append(fullCommentLine); ! strbuf.append(line ); ! strbuf.append(ps.getEndLineDelim()); } --- 49,59 ---- // For each line, comment them out for (i = ps.getStartLineIndex(); i <= ps.getEndLineIndex(); i++) { ! String line = StringUtils.rightTrim(ps.getLine(i)); ! String fullCommentLine = getFullCommentLine(line); strbuf.append(fullCommentLine); ! strbuf.append(line.trim()); ! if(i != ps.getEndLineIndex()){ ! strbuf.append(ps.getEndLineDelim()); ! } } *************** *** 69,74 **** /** ! * Currently returns a string with the comment block. ! * @param line * * @return Comment line string, or a default one if Preferences are null --- 70,76 ---- /** ! * Currently returns a string with the comment block. ! * ! * @param line * * @return Comment line string, or a default one if Preferences are null *************** *** 76,93 **** protected static String getFullCommentLine(String line) { try { ! IPreferenceStore chainedPrefStore = PydevPlugin.getChainedPrefStore(); ! int cols = chainedPrefStore ! .getInt(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN); ! StringBuffer buffer = new StringBuffer(cols); ! Preferences prefs = PydevPlugin.getDefault().getPluginPreferences(); ! char c; ! try { c = prefs.getString(PydevPrefs.SINGLE_BLOCK_COMMENT_CHAR).charAt(0); ! } catch (Exception e) { ! c = '-'; } ! buffer.append("#"); ! for (int i = 0; i + line.length() < cols-2; i++) { buffer.append(c); } --- 78,106 ---- protected static String getFullCommentLine(String line) { try { ! IPreferenceStore chainedPrefStore = null; ! int cols = 10; ! char c = '-'; ! ! try{ ! chainedPrefStore = PydevPlugin.getChainedPrefStore(); ! cols = chainedPrefStore.getInt(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN); ! Preferences prefs = PydevPlugin.getDefault().getPluginPreferences(); c = prefs.getString(PydevPrefs.SINGLE_BLOCK_COMMENT_CHAR).charAt(0); ! }catch(NullPointerException e){ ! //ignore... we're in the tests env } ! StringBuffer buffer = new StringBuffer(cols); ! for (int i = 0; i < line.length(); i++) { ! char ch = line.charAt(i); ! if(ch == '\t' || ch == ' '){ ! buffer.append(ch); ! }else{ ! break; ! } ! } ! ! buffer.append("#"); ! for (int i = 0; i + line.length() < cols - 2; i++) { buffer.append(c); } *************** *** 99,102 **** } - } --- 112,114 ---- Index: PyUncomment.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/actions/PyUncomment.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PyUncomment.java 19 Jul 2006 22:37:02 -0000 1.6 --- PyUncomment.java 19 Jul 2006 23:43:52 -0000 1.7 *************** *** 8,12 **** import org.eclipse.jface.action.IAction; - import org.eclipse.jface.text.IRegion; import org.python.pydev.core.docutils.PySelection; --- 8,11 ---- *************** *** 26,36 **** perform(ps); ! // Put cursor at the first area of the selection ! int docLen = ps.getDoc().getLength()-1; ! IRegion endLine = ps.getEndLine(); ! if(endLine != null){ ! int curOffset = endLine.getOffset(); ! getTextEditor().selectAndReveal(curOffset<docLen?curOffset:docLen, 0); ! } } catch (Exception e) { beep(e); --- 25,29 ---- perform(ps); ! revealSelEndLine(ps); } catch (Exception e) { beep(e); *************** *** 38,41 **** --- 31,35 ---- } + /** * Performs the action with a given PySelection |