From 3fa6c30e2be287d1fe77f6b772c1f3d9ca210a1e Mon Sep 17 00:00:00 2001 From: Stephane Dallongeville <stephane@outlook.com> Date: Thu, 15 Oct 2020 18:35:46 +0200 Subject: [PATCH] Initial commit --- .gitignore | 5 + README.md | 61 ++++++++++++- pom.xml | 91 +++++++++++++++++++ .../RSyntaxTextAreaPlugin.java | 8 ++ 4 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/plugins/tprovoost/rsyntaxtextarea/RSyntaxTextAreaPlugin.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3f6d8cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.classpath +.project +*.jardesc +bin/ +build/ diff --git a/README.md b/README.md index 2002d9c..8fe54fb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,59 @@ -# RSyntaxTextArea for Icy +RSyntaxTextArea is a customizable, syntax highlighting text component for Java Swing applications. Out of the box, it supports syntax highlighting for over 30 programming languages, code folding, search and replace, and has add-on libraries for code completion and spell checking. Syntax highlighting for additional languages [can be added](http://fifesoft.com/rsyntaxtextarea/doc/) via tools such as [JFlex](http://jflex.de). + +RSyntaxTextArea is available under a [modified BSD license](https://github.com/bobbylight/RSyntaxTextArea/blob/master/distfiles/RSyntaxTextArea.License.txt). For more information, visit [http://fifesoft.com/rsyntaxtextarea](http://fifesoft.com/rsyntaxtextarea). + +# Example Usage + +RSyntaxTextArea is simply a subclass of JTextComponent, so it can be dropped into any Swing application with ease. + +```java +import javax.swing.*; +import org.fife.ui.rtextarea.*; +import org.fife.ui.rsyntaxtextarea.*; + +public class TextEditorDemo extends JFrame { + + public TextEditorDemo() { + + JPanel cp = new JPanel(new BorderLayout()); + + RSyntaxTextArea textArea = new RSyntaxTextArea(20, 60); + textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA); + textArea.setCodeFoldingEnabled(true); + RTextScrollPane sp = new RTextScrollPane(textArea); + cp.add(sp); + + setContentPane(cp); + setTitle("Text Editor Demo"); + setDefaultCloseOperation(EXIT_ON_CLOSE); + pack(); + setLocationRelativeTo(null); + + } + + public static void main(String[] args) { + // Start all Swing applications on the EDT. + SwingUtilities.invokeLater(new Runnable() { + public void run() { + new TextEditorDemo().setVisible(true); + } + }); + } + +} +``` +# Sister Projects + +RSyntaxTextArea provides syntax highlighting, code folding, and many other features out-of-the-box, but when building a code editor you often want to go further. Below is a list of small add-on libraries that add more complex functionality: + +* [AutoComplete](https://github.com/bobbylight/AutoComplete) - Adds code completion to RSyntaxTextArea (or any other JTextComponent). +* [RSTALanguageSupport](https://github.com/bobbylight/RSTALanguageSupport) - Code completion for RSTA for the following languages: Java, JavaScript, HTML, PHP, JSP, Perl, C, Unix Shell. Built on both RSTA and AutoComplete. +* [SpellChecker](https://github.com/bobbylight/SpellChecker) - Adds squiggle-underline spell checking to RSyntaxTextArea. +* [RSTAUI](https://github.com/bobbylight/RSTAUI) - Common dialogs needed by text editing applications: Find, Replace, Go to Line, File Properties. + +# Getting Help + +* Add an issue on GitHub +* Ask in the [project forum](http://fifesoft.com/forum/) +* Check the project's [home page](http://fifesoft.com/rsyntaxtextarea) -RSyntaxTextArea library for Icy. -Badically it provides a TextArea component with syntax highlight for different languages. \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..dac231d --- /dev/null +++ b/pom.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <artifactId>pom-icy</artifactId> + <groupId>org.bioimageanalysis.icy</groupId> + <version>1.0.4</version> + </parent> + + <artifactId>icy-rsyntaxtextarea</artifactId> + <version>2.5.0</version> + + <packaging>jar</packaging> + + <name>RSyntaxTextArea for Icy</name> + <description> + RSyntaxTextArea library for Icy: provides a TextArea component with syntax highlight for different languages. + </description> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <jdk.version>1.8</jdk.version> + + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + </properties> + + + <build> + <defaultGoal>install</defaultGoal> + <directory>build</directory> + <finalName>${project.artifactId}-${project.version}</finalName> + + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>3.1.1</version> + <executions> + <execution> + <id>${project.artifactId}-fetch</id> + <phase>generate-sources</phase> + <goals> + <goal>unpack-dependencies</goal> + </goals> + <configuration> + <includeArtifactIds>rsyntaxtextarea</includeArtifactIds> + <outputDirectory>${project.build.outputDirectory}</outputDirectory> + <stripVersion>true</stripVersion> + <excludeTransitive>true</excludeTransitive> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <outputDirectory>${outputJar}</outputDirectory> + <archive> + <addMavenDescriptor>false</addMavenDescriptor> + </archive> + </configuration> + </plugin> + + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.bioimageanalysis.icy</groupId> + <artifactId>icy-kernel</artifactId> + </dependency> + <dependency> + <groupId>com.fifesoft</groupId> + <artifactId>rsyntaxtextarea</artifactId> + <version>2.5.0</version> + </dependency> + </dependencies> + + <repositories> + <repository> + <id>icy</id> + <url>https://icy-nexus.pasteur.fr/repository/Icy/</url> + </repository> + </repositories> +</project> \ No newline at end of file diff --git a/src/main/java/plugins/tprovoost/rsyntaxtextarea/RSyntaxTextAreaPlugin.java b/src/main/java/plugins/tprovoost/rsyntaxtextarea/RSyntaxTextAreaPlugin.java new file mode 100644 index 0000000..ddfeeea --- /dev/null +++ b/src/main/java/plugins/tprovoost/rsyntaxtextarea/RSyntaxTextAreaPlugin.java @@ -0,0 +1,8 @@ +package plugins.tprovoost.rsyntaxtextarea; + +import icy.plugin.abstract_.Plugin; +import icy.plugin.interface_.PluginLibrary; + +public class RSyntaxTextAreaPlugin extends Plugin implements PluginLibrary { + +} -- GitLab