⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jedittextarea.java

📁 Java写的文本编辑器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	}	/**	 * Returns the `magic' caret position. This can be used to preserve	 * the column position when moving up and down lines.	 */	public final int getMagicCaretPosition()	{		return (magicCaret == -1			? offsetToX(caretLine,caret - getLineStartOffset(caretLine))			: magicCaret);	}	/**	 * Sets the `magic' caret position. This can be used to preserve	 * the column position when moving up and down lines.	 * @param magicCaret The magic caret position	 */	public final void setMagicCaretPosition(int magicCaret)	{		this.magicCaret = magicCaret;	}	/**	 * Handles the insertion of the specified character. Performs	 * auto indent, expands abbreviations, does word wrap, etc.	 * @param ch The character	 * @see #setSelectedText(String)	 * @see #isOverwriteEnabled()	 * @since jEdit 2.7pre3	 */	public void userInput(char ch)	{		if(!isEditable())		{			getToolkit().beep();			return;		}		if(ch == ' ' && Abbrevs.getExpandOnInput()			&& Abbrevs.expandAbbrev(view,false))			return;		else if(ch == '\t')		{			if(buffer.getBooleanProperty("indentOnTab")				&& selection.size() == 0				&& buffer.indentLine(caretLine,true,false))				return;			else if(buffer.getBooleanProperty("noTabs"))			{				int lineStart = getLineStartOffset(caretLine);				String line = getText(lineStart,caret - lineStart);				setSelectedText(createSoftTab(line,buffer.getTabSize()));			}			else				setSelectedText("\t");			return;		}		else if(ch == '\n')		{			try			{				buffer.beginCompoundEdit();				setSelectedText("\n");				if(buffer.getBooleanProperty("indentOnEnter"))					buffer.indentLine(caretLine,true,false);			}			finally			{				buffer.endCompoundEdit();			}			return;		}		else		{			String str = String.valueOf(ch);			if(selection.size() != 0)			{				setSelectedText(str);				return;			}			try			{				if(ch == ' ')				{					if(doWordWrap(caretLine,true))						return;				}				else					doWordWrap(caretLine,false);			}			catch(BadLocationException bl)			{				Log.log(Log.ERROR,this,bl);			}			try			{				buffer.beginCompoundEdit();				// Don't overstrike if we're on the end of				// the line				if(overwrite)				{					int caretLineEnd = getLineEndOffset(caretLine);					if(caretLineEnd - caret > 1)						buffer.remove(caret,1);				}				buffer.insertString(caret,str,null);			}			catch(BadLocationException bl)			{				Log.log(Log.ERROR,this,bl);			}			finally			{				buffer.endCompoundEdit();			}		}		// check if the user entered a bracket		String indentOpenBrackets = (String)buffer			.getProperty("indentOpenBrackets");		String indentCloseBrackets = (String)buffer			.getProperty("indentCloseBrackets");		if((indentCloseBrackets != null			&& indentCloseBrackets.indexOf(ch) != -1)			|| (indentOpenBrackets != null			&& indentOpenBrackets.indexOf(ch) != -1))		{			buffer.indentLine(caretLine,false,true);		}	}	/**	 * Returns true if overwrite mode is enabled, false otherwise.	 */	public final boolean isOverwriteEnabled()	{		return overwrite;	}	/**	 * Sets overwrite mode.	 */	public final void setOverwriteEnabled(boolean overwrite)	{		this.overwrite = overwrite;		invalidateLine(caretLine);		if(view.getStatus() != null)			view.getStatus().updateMiscStatus();	}	/**	 * Toggles overwrite mode.	 * @since jEdit 2.7pre2	 */	public final void toggleOverwriteEnabled()	{		overwrite = !overwrite;		invalidateLine(caretLine);		if(view.getStatus() != null)			view.getStatus().updateMiscStatus();	}	/**	 * Returns the position of the highlighted bracket (the bracket	 * matching the one before the caret)	 */	public final int getBracketPosition()	{		return bracketPosition;	}	/**	 * Returns the line of the highlighted bracket (the bracket	 * matching the one before the caret)	 */	public final int getBracketLine()	{		return bracketLine;	}	/**	 * Adds a caret change listener to this text area.	 * @param listener The listener	 */	public final void addCaretListener(CaretListener listener)	{		listenerList.add(CaretListener.class,listener);	}	/**	 * Removes a caret change listener from this text area.	 * @param listener The listener	 */	public final void removeCaretListener(CaretListener listener)	{		listenerList.remove(CaretListener.class,listener);	}	/**	 * Adds a scroll listener to this text area.	 * @param listener The listener	 * @since jEdit 3.2pre2	 */	public final void addScrollListener(ScrollListener listener)	{		listenerList.add(ScrollListener.class,listener);	}	/**	 * Removes a scroll listener from this text area.	 * @param listener The listener	 * @since jEdit 3.2pre2	 */	public final void removeScrollListener(ScrollListener listener)	{		listenerList.remove(ScrollListener.class,listener);	}	/**	 * Deletes the character before the caret, or the selection, if one is	 * active.	 * @since jEdit 2.7pre2	 */	public void backspace()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		if(selection.size() != 0)			setSelectedText("");		else		{			if(caret == 0)			{				getToolkit().beep();				return;			}			try			{				buffer.remove(caret - 1,1);			}			catch(BadLocationException bl)			{				Log.log(Log.ERROR,this,bl);			}		}	}	/**	 * Deletes the word before the caret.	 * @since jEdit 2.7pre2	 */	public void backspaceWord()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		if(selection.size() != 0)		{			setSelectedText("");			return;		}		int lineStart = getLineStartOffset(caretLine);		int _caret = caret - lineStart;		String lineText = getLineText(caretLine);		if(_caret == 0)		{			if(lineStart == 0)			{				getToolkit().beep();				return;			}			_caret--;		}		else		{			String noWordSep = (String)buffer.getProperty("noWordSep");			_caret = TextUtilities.findWordStart(lineText,_caret-1,noWordSep);		}		try		{			buffer.remove(_caret + lineStart,				caret - (_caret + lineStart));		}		catch(BadLocationException bl)		{			Log.log(Log.ERROR,this,bl);		}	}	/**	 * Deletes the character after the caret.	 * @since jEdit 2.7pre2	 */	public void delete()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		if(selection.size() != 0)			setSelectedText(null);		else		{			if(caret == buffer.getLength())			{				getToolkit().beep();				return;			}			try			{				buffer.remove(caret,1);			}			catch(BadLocationException bl)			{				Log.log(Log.ERROR,this,bl);			}		}	}	/**	 * Deletes from the caret to the end of the current line.	 * @since jEdit 2.7pre2	 */	public void deleteToEndOfLine()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		try		{			buffer.remove(caret,getLineEndOffset(caretLine)				- caret - 1);		}		catch(BadLocationException bl)		{			Log.log(Log.ERROR,this,bl);		}	}	/**	 * Deletes the line containing the caret.	 * @since jEdit 2.7pre2	 */	public void deleteLine()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		Element map = buffer.getDefaultRootElement();		Element lineElement = map.getElement(caretLine);		try		{			int start = lineElement.getStartOffset();			int end = lineElement.getEndOffset();			if(end > buffer.getLength())			{				if(start != 0)					start--;				end--;			}			buffer.remove(start,end - start);		}		catch(BadLocationException bl)		{			Log.log(Log.ERROR,this,bl);		}	}	/**	 * Deletes the paragraph containing the caret.	 * @since jEdit 2.7pre2	 */	public void deleteParagraph()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		int start = 0, end = buffer.getLength();loop:		for(int i = caretLine - 1; i >= 0; i--)		{			//if(!buffer.isLineVisible(i))			//	continue loop;			getLineText(i,lineSegment);			for(int j = 0; j < lineSegment.count; j++)			{				switch(lineSegment.array[lineSegment.offset + j])				{				case ' ':				case '\t':					break;				default:					continue loop;				}			}			start = getLineStartOffset(i);			break loop;		}loop:		for(int i = caretLine + 1; i < getLineCount(); i++)		{			//if(!buffer.isLineVisible(i))			//	continue loop;			getLineText(i,lineSegment);			for(int j = 0; j < lineSegment.count; j++)			{				switch(lineSegment.array[lineSegment.offset + j])				{				case ' ':				case '\t':					break;				default:					continue loop;				}			}			end = getLineEndOffset(i) - 1;			break loop;		}		try		{			buffer.remove(start,end - start);		}		catch(BadLocationException bl)		{			Log.log(Log.ERROR,this,bl);		}	}	/**	 * Deletes from the caret to the beginning of the current line.	 * @since jEdit 2.7pre2	 */	public void deleteToStartOfLine()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		Element map = buffer.getDefaultRootElement();		Element lineElement = map.getElement(caretLine);		try		{			buffer.remove(lineElement.getStartOffset(),				caret - lineElement.getStartOffset());		}		catch(BadLocationException bl)		{			Log.log(Log.ERROR,this,bl);		}	}	/**	 * Deletes the word in front of the caret.	 * @since jEdit 2.7pre2	 */	public void deleteWord()	{		if(!buffer.isEditable())		{			getToolkit().beep();			return;		}		if(selection.size() != 0)		{			setSelectedText("");			return;		}		int lineStart = getLineStartOffset(caretLine);		int _caret = caret - lineStart;		String lineText = getLineText(caretLine);		if(_caret == lineText.length())		{			if(lineStart + _caret == buffer.getLength())			{				getToolkit().beep();				return;			}			_caret++;		}		else		{			String noWordSep = (String)buffer.getProperty("noWordSep");			_caret = TextUtilities.findWordEnd(lineText,				_caret+1,noWordSep);		}		try		{			buffer.remove(caret,(_caret + lineStart) - caret);		}		catch(BadLocationException bl)		{			Log.log(Log.ERROR,this,bl);		}	}	/**	 * Moves the caret to the next closing bracket.	 * @since jEdit 2.7pre2.	 */	public void goToNextBracket(boolean select)	{		String text = getText(caret,buffer.getLength() - caret - 1);		int newCaret = -1;loop:		for(int i = 0; i < text.length(); i++)		{			switch(text.charAt(i))			{			case ')': case ']': case '}':				newCaret = caret + i + 1;				break loop;			}		}		if(newCaret == -1)			getToolkit().beep();		else		{			if(select)				extendSelection(caret,newCaret);			else if(!multi)				selectNone();			moveCaretPosition(newCaret);		}	}	/**	 * Moves the caret to the next character.	 * @since jEdit 2.7pre2.	 */	public void goToNextCharacter(boolean select)	{		if(!select && selection.size() != 0)		{			Selection s = getSelectionAtOffset(caret);			if(s != null)			{				if(multi)				{					if(caret != s.end)					{						moveCaretPosition(s.end);						return;					}				}				else				{					setCaretPosition(s.end);					return;				}			}		}		if(caret == buffer.getLength())			getToolkit().beep();		int newCaret;		if(caret == getLineEndOffset(caretLine) - 1)		{			int line = buffer.getNextVisibleLine(caretLine);			if(line == -1)			{				getToolkit().beep();				return;			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -