java.lang.Object
org.gjt.sp.jedit.buffer.JEditBuffer
org.gjt.sp.jedit.Buffer
A
Buffer
represents the contents of an open text
file as it is maintained in the computer's memory (as opposed to
how it may be stored on a disk).
In a BeanShell script, you can obtain the current buffer instance from the
buffer
variable.
This class does not have a public constructor.
Buffers can be opened and closed using methods in the jEdit
class.
This class is partially thread-safe, however you must pay attention to two very important guidelines:
- Operations such as insert() and remove(), undo(), change Buffer data in a writeLock(), and must be called from the AWT thread.
- When accessing the buffer from another thread, you must call readLock() before and readUnLock() after, if you plan on performing more than one read, to ensure that the buffer contents are not changed by the AWT thread for the duration of the lock. Only methods whose descriptions specify thread safety can be invoked from other threads.
- Version:
- $Id: Buffer.java 25241 2020-04-15 14:34:21Z kpouer $
- Author:
- Slava Pestov
-
Nested Class Summary
Nested classes/interfaces inherited from class org.gjt.sp.jedit.buffer.JEditBuffer
JEditBuffer.PropValue
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Backed up property.static final String
Caret info properties.static final String
static final String
Should jEdit try to set the encoding based on a UTF8, UTF16 or XML signature at the beginning of the file?static final int
static final int
static final int
static final String
This property is set to 'true' if the file should be GZipped.static final String
static final String
This should be a physical line number, so that the scroll position is preserved correctly across reloads (which will affect virtual line numbers, due to fold being reset)static final String
Stores a List ofSelection
instances.static final String
This property is set to 'true' if the file has a trailing newline.Fields inherited from class org.gjt.sp.jedit.buffer.JEditBuffer
columnBlockLock, contextInsensitive, elasticTabstopsOn, ENCODING, HIGH_PRIORITY, LINESEP, mode, NORMAL_PRIORITY, tokenMarker, undoMgr
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addBufferUndoListener
(BufferUndoListener listener) Adds a buffer undo listener.void
addMarker
(char shortcut, int pos) Adds a marker to this buffer.void
addOrRemoveMarker
(char shortcut, int pos) If a marker is set on the line of the position, it is removed.void
autosave()
Autosaves this buffer.void
autosave
(boolean force) Autosaves this buffer.int
checkFileStatus
(View view) Check if the buffer has changed on disk.void
close()
protected void
protected void
protected void
protected void
boolean
boolean
getContextSensitiveProperty
(int offset, String name) Some settings, like comment start and end strings, can vary between different parts of a buffer (HTML text and inline JavaScript, for example).getDefaultProperty
(String name) getFile()
Deprecated.getIcon()
int
getIndex()
long
getMarker
(char shortcut) getMarkerAtLine
(int line) getMarkerInRange
(int start, int end) static String
getMarkersPath
(VFS vfs, String path) Returns the path for this buffer's markers filegetMarkerStatusPrompt
(String action) getName()
getNext()
getPath()
getPrev()
getVFS()
Returns the virtual filesystem responsible for loading and saving this buffer.boolean
insertFile
(View view, String path) Loads a file from disk, and inserts it into this buffer.boolean
isBackup()
boolean
isClosed()
boolean
boolean
isLoaded()
boolean
isLocked()
boolean
boolean
boolean
isTitled()
boolean
boolean
Loads the buffer from disk.boolean
protected TokenMarker.LineContext
markTokens
(Segment seg, TokenMarker.LineContext prevContext, TokenHandler _tokenHandler) void
Reloads settings from the properties.void
Reloads the buffer from disk, asking for confirmation if the buffer has unsaved changes.void
Removes all defined markers.void
Remove the autosave file.void
removeBufferUndoListener
(BufferUndoListener listener) Removes a buffer undo listener.void
removeMarker
(int line) Removes all markers at the specified line.boolean
Saves this buffer to the specified path name, or the current path name if it's null.boolean
Saves this buffer to the specified path name, or the current path name if it's null.boolean
Saves this buffer to the specified path name, or the current path name if it's null.boolean
Prompts the user for a file to save this buffer to.void
setAutoReload
(boolean value) Sets the status of the AUTORELOAD flagvoid
setAutoReloadDialog
(boolean value) Sets the status of the AUTORELOAD_DIALOG flagvoid
setDirty
(boolean d) Sets the 'dirty' (changed since last save) flag of this buffer.void
setLastModified
(long modTime) Sets the last time jEdit modified the file on disk.void
setLocked
(boolean locked) Changes locked state of the buffer.void
setMarkersChanged
(boolean changed) Sets/unsets the MARKERS_CHANGED flagvoid
setMode()
Sets this buffer's edit mode by calling the accept() method of each registered edit mode.void
setNewFile
(boolean newFile) Sets the new file flag.void
void
protected void
setUntitled
(boolean untitled) void
setWaitSocket
(Socket waitSocket) This socket is closed when the buffer is closed.void
toggleAutoIndent
(View view) Toggles automatic indentation on and off.void
toggleLineSeparator
(View view) Toggles the line separator between the three available settings.void
toggleLocked
(View view) Toggles locked state of the buffer.void
toggleWordWrap
(View view) Toggles word wrap between the three available modes.toString()
Returns a string representation of this buffer.boolean
updateMarkersFile
(View view) Save the markers file, or delete it when there are mo markers left Handling markers is now independent from saving the buffer.Methods inherited from class org.gjt.sp.jedit.buffer.JEditBuffer
addBufferListener, addBufferListener, beginCompoundEdit, canRedo, canUndo, createPosition, endCompoundEdit, fireBufferLoaded, fireContentInserted, fireContentRemoved, fireFoldHandlerChanged, fireFoldLevelChanged, firePreContentInserted, firePreContentRemoved, fireTransactionComplete, getBooleanProperty, getBooleanProperty, getBufferListeners, getColumnBlock, getCurrentIndentForLine, getFoldAtLine, getFoldHandler, getFoldLevel, getIdealIndentForLine, getIndentSize, getIntegerProperty, getKeywordMapAtOffset, getLength, getLineContext, getLineCount, getLineEndOffset, getLineLength, getLineOfOffset, getLineSegment, getLineStartOffset, getLineText, getLineText, getLineText, getMode, getOffsetOfVirtualColumn, getPatternProperty, getPriorNonEmptyLine, getProperty, getRuleSetAtOffset, getSegment, getStringProperty, getTabSize, getTabStopPosition, getText, getText, getText, getTokenMarker, getUndoId, getVirtualWidth, hasProperty, indentLine, indentLines, indentLines, indentUsingElasticTabstops, insert, insert, insert, insertAtColumn, insertIndented, insideCompoundEdit, invalidateCachedFoldLevels, invalidateFoldLevels, isContextInsensitive, isDirty, isElectricKey, isFileReadOnly, isFoldEnd, isFoldStart, isLoading, isPerformingIO, isReadOnly, isTransactionInProgress, isUndoInProgress, loadText, markTokens, parseBufferLocalProperties, readLock, readUnlock, redo, remove, removeBufferListener, removeTrailingWhiteSpace, resetCachedProperties, setBooleanProperty, setContextInsensitive, setDefaultProperty, setEditable, setFileReadOnly, setFoldHandler, setIntegerProperty, setLoading, setMode, setMode, setMode, setPerformingIO, setProperty, setReadOnly, setStringProperty, setTokenMarker, setUndoLimit, shiftIndentLeft, shiftIndentRight, simpleIndentLine, undo, unsetProperty, updateColumnBlocks, writeLock, writeUnlock
-
Field Details
-
BACKED_UP
Backed up property.- Since:
- jEdit 3.2pre2
- See Also:
-
CARET
Caret info properties.- Since:
- jEdit 3.2pre1
- See Also:
-
CARET_POSITIONED
- See Also:
-
SELECTION
Stores a List ofSelection
instances.- See Also:
-
SCROLL_VERT
This should be a physical line number, so that the scroll position is preserved correctly across reloads (which will affect virtual line numbers, due to fold being reset)- See Also:
-
SCROLL_HORIZ
- See Also:
-
ENCODING_AUTODETECT
Should jEdit try to set the encoding based on a UTF8, UTF16 or XML signature at the beginning of the file?- See Also:
-
TRAILING_EOL
This property is set to 'true' if the file has a trailing newline.- Since:
- jEdit 4.0pre1
- See Also:
-
GZIPPED
This property is set to 'true' if the file should be GZipped.- Since:
- jEdit 4.0pre4
- See Also:
-
FILE_NOT_CHANGED
public static final int FILE_NOT_CHANGED- See Also:
-
FILE_CHANGED
public static final int FILE_CHANGED- See Also:
-
FILE_DELETED
public static final int FILE_DELETED- See Also:
-
-
Method Details
-
reload
Reloads the buffer from disk, asking for confirmation if the buffer has unsaved changes.- Parameters:
view
- The view- Since:
- jEdit 2.7pre2
-
load
Loads the buffer from disk.- Parameters:
view
- The viewreload
- If true, user will not be asked to recover autosave file, if any- Returns:
- true if loaded
- Since:
- 2.5pre1
-
insertFile
Loads a file from disk, and inserts it into this buffer.- Parameters:
view
- The viewpath
- the path of the file to insert- Returns:
- true if the file was inserted
- Since:
- 4.0pre1
-
autosave
public void autosave()Autosaves this buffer. -
autosave
public void autosave(boolean force) Autosaves this buffer.- Parameters:
force
- save even if AUTOSAVE_DIRTY not set- Since:
- jEdit 5.5pre1
-
saveAs
Prompts the user for a file to save this buffer to.- Parameters:
view
- The viewrename
- True if the buffer's path should be changed, false if only a copy should be saved to the specified filename- Returns:
- true if the buffer was successfully saved
- Since:
- jEdit 2.6pre5
-
save
Saves this buffer to the specified path name, or the current path name if it's null.- Parameters:
view
- The viewpath
- The path name to save the buffer to, or null to use- Returns:
- true if the buffer was successfully saved the existing path
-
save
Saves this buffer to the specified path name, or the current path name if it's null.- Parameters:
view
- The viewpath
- The path name to save the buffer to, or null to use the existing pathrename
- True if the buffer's path should be changed, false if only a copy should be saved to the specified filename- Returns:
- true if the buffer was successfully saved
- Since:
- jEdit 2.6pre5
-
save
Saves this buffer to the specified path name, or the current path name if it's null.- Parameters:
view
- The viewpath
- The path name to save the buffer to, or null to use the existing pathrename
- True if the buffer's path should be changed, false if only a copy should be saved to the specified filenamedisableFileStatusCheck
- Disables file status checking regardless of the state of the checkFileStatus property- Returns:
- true if the buffer was successfully saved
-
checkFileStatus
Check if the buffer has changed on disk.- Parameters:
view
- the View- Returns:
- One of
FILE_NOT_CHANGED
,FILE_CHANGED
, orFILE_DELETED
. - Since:
- jEdit 4.2pre1
-
getLastModified
public long getLastModified()- Returns:
- the last time jEdit modified the file on disk. This method is thread-safe.
-
setLastModified
public void setLastModified(long modTime) Sets the last time jEdit modified the file on disk.- Parameters:
modTime
- The new modification time
-
getAutoReload
public boolean getAutoReload()- Returns:
- the status of the AUTORELOAD flag If true, reload changed files automatically
-
setAutoReload
public void setAutoReload(boolean value) Sets the status of the AUTORELOAD flag- Parameters:
value
- # If true, reload changed files automatically
-
getAutoReloadDialog
public boolean getAutoReloadDialog()- Returns:
- the status of the AUTORELOAD_DIALOG flag If true, prompt for reloading or notify user when the file has changed on disk
-
setAutoReloadDialog
public void setAutoReloadDialog(boolean value) Sets the status of the AUTORELOAD_DIALOG flag- Parameters:
value
- # If true, prompt for reloading or notify user when the file has changed on disk
-
getVFS
Returns the virtual filesystem responsible for loading and saving this buffer. This method is thread-safe.- Returns:
- the VFS
-
getAutosaveFile
- Returns:
- the autosave file for this buffer. This may be null if the file is non-local.
-
removeAutosaveFile
public void removeAutosaveFile()Remove the autosave file.- Since:
- jEdit 4.3pre12
-
getName
- Returns:
- the name of this buffer. This method is thread-safe.
-
getPath
- Returns:
- the path name of this buffer. This method is thread-safe.
-
getPath
- Parameters:
shortVersion
- if true, replaces home path with ~/ on unix- Returns:
- the path
-
getSymlinkPath
- Returns:
- If this file is a symbolic link, returns the link destination. Otherwise returns the file's path. This method is thread-safe.
- Since:
- jEdit 4.2pre1
-
getDirectory
- Returns:
- the directory containing this buffer.
- Since:
- jEdit 4.1pre11
-
isClosed
public boolean isClosed()- Returns:
- true if this buffer has been closed with
jEdit.closeBuffer(View,Buffer)
. This method is thread-safe.
-
isLoaded
public boolean isLoaded()- Returns:
- true if the buffer is loaded. This method is thread-safe.
-
isNewFile
public boolean isNewFile()- Returns:
- whether this buffer lacks a corresponding version on disk. This method is thread-safe.
-
setNewFile
public void setNewFile(boolean newFile) Sets the new file flag.- Parameters:
newFile
- The new file flag
-
isUntitled
public boolean isUntitled()- Returns:
- true if this file is 'untitled'. This method is thread-safe.
-
isTitled
public boolean isTitled()- Returns:
- true if this file is not'untitled'. This method is thread-safe.
- Since:
- jEdit 5.6pre1
-
setUntitled
protected void setUntitled(boolean untitled) - Parameters:
untitled
- untitled value to set- Since:
- jEdit 5.5pre1
-
setDirty
public void setDirty(boolean d) Sets the 'dirty' (changed since last save) flag of this buffer.- Overrides:
setDirty
in classJEditBuffer
- Parameters:
d
- Sets the 'dirty' (changed since last save) flag of this buffer.
-
isTemporary
public boolean isTemporary()- Returns:
- if this is a temporary buffer. This method is thread-safe.
- Since:
- jEdit 2.2pre7
- See Also:
-
isBackup
public boolean isBackup()- Returns:
- if this buffer most probably contains backup file
-
isEditable
public boolean isEditable()- Overrides:
isEditable
in classJEditBuffer
- Returns:
- true if this file is editable, false otherwise. A file may become uneditable if it is read only, or if I/O is in progress. This method is thread-safe.
-
isLocked
public boolean isLocked()- Returns:
- if this buffer is locked for editing
-
setLocked
public void setLocked(boolean locked) Changes locked state of the buffer.- Parameters:
locked
- true to lock, false to unlock
-
toggleLocked
Toggles locked state of the buffer.- Parameters:
view
- We show a message in the view's status bar
-
getIcon
- Returns:
- this buffer's icon.
- Since:
- jEdit 2.6pre6
-
propertiesChanged
public void propertiesChanged()Reloads settings from the properties. This should be called after thesyntax
orfolding
buffer-local properties are changed.- Overrides:
propertiesChanged
in classJEditBuffer
-
getDefaultProperty
- Overrides:
getDefaultProperty
in classJEditBuffer
-
toggleWordWrap
Toggles word wrap between the three available modes. This is used by the status bar.- Parameters:
view
- We show a message in the view's status bar- Since:
- jEdit 4.1pre3
-
toggleAutoIndent
Toggles automatic indentation on and off.- Parameters:
view
- This view's status bar will display the message- Since:
- jEdit 5.0
-
toggleLineSeparator
Toggles the line separator between the three available settings. This is used by the status bar.- Parameters:
view
- We show a message in the view's status bar- Since:
- jEdit 4.1pre3
-
getContextSensitiveProperty
Some settings, like comment start and end strings, can vary between different parts of a buffer (HTML text and inline JavaScript, for example).- Overrides:
getContextSensitiveProperty
in classJEditBuffer
- Parameters:
offset
- The offsetname
- The property name- Returns:
- the property value
- Since:
- jEdit 4.0pre3
-
setMode
public void setMode()Sets this buffer's edit mode by calling the accept() method of each registered edit mode. -
getFile
Deprecated.Do not call this method, usegetPath()
instead.- Returns:
- the file
-
getMarkers
- Returns:
- a vector of markers.
- Since:
- jEdit 3.2pre1
-
getMarkerStatusPrompt
- Parameters:
action
- some action- Returns:
- the status prompt for the given marker action. Only
intended to be called from
actions.xml
. - Since:
- jEdit 4.2pre2
-
getMarkerNameString
- Returns:
- a string of all set markers, used by the status bar (eg, "a b $ % ^").
- Since:
- jEdit 4.2pre2
-
addOrRemoveMarker
public void addOrRemoveMarker(char shortcut, int pos) If a marker is set on the line of the position, it is removed. Otherwise a new marker with the specified shortcut is added.- Parameters:
pos
- The position of the markershortcut
- The shortcut ('\0' if none)- Since:
- jEdit 3.2pre5
-
addMarker
public void addMarker(char shortcut, int pos) Adds a marker to this buffer.- Parameters:
pos
- The position of the markershortcut
- The shortcut ('\0' if none)- Since:
- jEdit 3.2pre1
-
getMarkerInRange
- Parameters:
start
- The start offsetend
- The end offset- Returns:
- the first marker within the specified range.
- Since:
- jEdit 4.0pre4
-
getMarkerAtLine
- Parameters:
line
- The line number- Returns:
- the first marker at the specified line, or
null
if there is none. - Since:
- jEdit 3.2pre2
-
removeMarker
public void removeMarker(int line) Removes all markers at the specified line.- Parameters:
line
- The line number- Since:
- jEdit 3.2pre2
-
removeAllMarkers
public void removeAllMarkers()Removes all defined markers.- Since:
- jEdit 2.6pre1
-
getMarker
- Parameters:
shortcut
- The shortcut- Returns:
- the marker with the specified shortcut.
- Since:
- jEdit 3.2pre2
-
getMarkersPath
Returns the path for this buffer's markers file- Parameters:
vfs
- The appropriate VFSpath
- the path of the buffer, it can be different from the field when using save-as- Returns:
- the marker path
- Since:
- jEdit 4.3pre10
-
updateMarkersFile
Save the markers file, or delete it when there are mo markers left Handling markers is now independent from saving the buffer. Changing markers will not set the buffer dirty any longer.- Parameters:
view
- The current view- Returns:
- true if markers were updated
- Since:
- jEdit 4.3pre7
-
markersChanged
public boolean markersChanged()- Returns:
- true when markers have changed and the markers file needs to be updated
- Since:
- jEdit 4.3pre7
-
setMarkersChanged
public void setMarkersChanged(boolean changed) Sets/unsets the MARKERS_CHANGED flag- Parameters:
changed
- changed- Since:
- jEdit 4.3pre7
-
setWaitSocket
This socket is closed when the buffer is closed.- Parameters:
waitSocket
- the socket
-
getNext
- Returns:
- the next buffer in the list.
-
getPrev
- Returns:
- the previous buffer in the list.
-
setPrev
-
setNext
-
getIndex
public int getIndex()- Returns:
- the position of this buffer in the buffer list.
-
toString
Returns a string representation of this buffer. This simply returns the path name. -
addBufferUndoListener
Adds a buffer undo listener.- Parameters:
listener
- The listener- Since:
- jEdit 4.3pre18
-
removeBufferUndoListener
Removes a buffer undo listener.- Parameters:
listener
- The listener- Since:
- jEdit 4.3pre18
-
close
public void close() -
markTokens
protected TokenMarker.LineContext markTokens(Segment seg, TokenMarker.LineContext prevContext, TokenHandler _tokenHandler) - Overrides:
markTokens
in classJEditBuffer
-
fireBeginUndo
protected void fireBeginUndo()- Overrides:
fireBeginUndo
in classJEditBuffer
-
fireEndUndo
protected void fireEndUndo()- Overrides:
fireEndUndo
in classJEditBuffer
-
fireBeginRedo
protected void fireBeginRedo()- Overrides:
fireBeginRedo
in classJEditBuffer
-
fireEndRedo
protected void fireEndRedo()- Overrides:
fireEndRedo
in classJEditBuffer
-
getPath()
instead.