MCPcopy Index your code
hub / github.com/bobbylight/RText

github.com/bobbylight/RText @6.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 6.1.0 ↗ · + Follow
3,032 symbols 9,204 edges 257 files 1,773 documented · 58%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

RText

Java Build Java Build

RText is a programmer's text editor written in Java. It has all the features you would expect:

  • Syntax highlighting for 50+ languages
  • Code folding
  • Regex search and replace
  • Find/replace in files
  • Varying degrees of code completion for C, Java, Perl, JavaScript, and more
  • Varying degrees of syntax checking for various languages (JSHint integration for JavaScript, compiler checking for Perl, XML well-formedness checking, etc.)
  • Programmatic macros, write them in either JavaScript or Groovy
  • Application lifecycle (bootstrap, plugin loading, cleanup, shutdown)
  • Preference loading and saving
  • User-configurable key bindings
  • Standard modals for Options, Help, About, Printing
  • File chooser (richer feature set and improved usability over JFileChooser)
  • Dockable windows
  • External tools
  • Much more

Building

RText uses Gradle to build. To compile, run all unit tests, create the jar, and run the app:

./gradlew build installDist
java -jar build/install/rtext/RText.jar

Note that RText requires Java 25 or later to build.

Building the Windows application and installer

To create the Windows version of the application, run the generateWindowsStarterExe task in addition to installDist. This ensures a trimmed-down JRE is generated, and a starter RText.exe file is added into build/install/rtext:

./gradlew clean build installDist generateWindowsStarterExe

The generateWindowsStarterExe task uses a JDK 21 install and launch4j as defined in gradle.properties.

Note this gradle task runs jlink directly and uses launch4j rather than using jpackage since our app needs loose files and jpackage seems to require all files being wrapped into the generated .exe. This is different than our macOS app task (discussed below) which uses jpackage.

After building the installable image, you can create the win32 installer by running the MakeRTextInstaller.nsi NSIS script at the root of the project.

Building the macOS application

To build the .app bundle intobuild/install/RText-<version>.dmg:

./gradlew clean build generateMacApp

The generated RText-<version>.dmg can be used to install RText.app to the Applications folder. Note that this app currently isn't signed, so Gatekeeper will likely prevent you from installing. To get around this you'll need to tweak your security policy to allow installing of apps from outside the App Store.

Extension points exported contracts — how you extend this code

CurrentTextAreaListener (Interface)
A listener interested in knowing about changes to the current text area. @author Robert Futrell @version 0.5 [6 implementers]
src/main/java/org/fife/rtext/CurrentTextAreaListener.java
AbstractSearchAction (Interface)
A base class for actions that perform search operations. @author Robert Futrell @version 1,0 [151 implementers]
src/main/java/org/fife/rtext/actions/AbstractSearchAction.java
NameChecker (Interface)
Determines whether text is valid for a particular field in a form. @author Robert Futrell @version 1.0 [10 implementers]
src/main/java/org/fife/rtext/plugins/project/tree/NameChecker.java
ProjectEntryParent (Interface)
A ModelEntity that can be the parent of a ProjectEntry . @author Robert Futrell @version 1.0 [4 implementers]
src/main/java/org/fife/rtext/plugins/project/model/ProjectEntryParent.java
WorkspaceVisitor (Interface)
A visitor of a workspace and its project entries. @author Robert Futrell @version 1.0 [4 implementers]
src/main/java/org/fife/rtext/plugins/project/model/WorkspaceVisitor.java

Core symbols most depended-on inside this repo

add
called by 1082
src/main/java/org/fife/rtext/plugins/sourcebrowser/SourceTreeNode.java
equals
called by 283
src/main/java/org/fife/rtext/plugins/tools/Tool.java
getString
called by 253
src/main/java/org/fife/rtext/plugins/console/Plugin.java
get
called by 213
src/main/java/org/fife/rtext/plugins/tools/ToolManager.java
setSelected
called by 191
src/main/java/org/fife/rtext/plugins/project/ProjectWindow.java
setDirty
called by 162
src/main/java/org/fife/ui/rsyntaxtextarea/AbstractTextAreaOptionPanel.java
getMainView
called by 155
src/main/java/org/fife/rtext/RText.java
setIcon
called by 145
src/main/java/org/fife/rtext/plugins/sourcebrowser/GroupTreeNode.java

Shape

Method 2,626
Class 389
Interface 16
Enum 1

Languages

Java100%

Modules by API surface

src/main/java/org/fife/rtext/AbstractMainView.java204 symbols
src/main/java/org/fife/ui/rsyntaxtextarea/EditorOptionsPreviewContext.java93 symbols
src/main/java/org/fife/rtext/RText.java80 symbols
src/main/java/org/fife/rtext/plugins/project/tree/AbstractWorkspaceTreeNode.java57 symbols
src/main/java/org/fife/rtext/plugins/console/ConsoleTextArea.java56 symbols
src/main/java/org/fife/ui/search/FindInFilesDialog.java52 symbols
src/main/java/org/fife/rtext/RTextTabbedPaneView.java50 symbols
src/main/java/org/fife/rtext/plugins/sourcebrowser/SourceBrowserPlugin.java46 symbols
src/main/java/org/fife/rtext/plugins/tools/NewToolDialog.java37 symbols
src/main/java/org/fife/rtext/RTextMDIView.java37 symbols
src/main/java/org/fife/ui/rsyntaxtextarea/TemplateOptionPanel.java33 symbols
src/main/java/org/fife/rtext/plugins/langsupport/PerlOptionsPanel.java33 symbols

For agents

$ claude mcp add RText \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact