Question

I have started a project that requires syntax highlighting and code completion (a window pops up at the caret location providing suggestions) and can't find a suitable solution. There are multiple Swing components which take text input e.g. JTextArea, JTextPane and JEditorPane which makes it significantly more difficult to figure out which is the correct one to use.

The project is a programmer specific text editor which will have integration with the unity game engine. This meaning code completion and highlighting will be done on JavaScript and C# syntax.

It might be obvious but the general idea is that when the user types, certain words change to a specified colour, these words would be stored in a text file. For the code completion I need to be able to grab the currently typed letters, this detection process will restart by using the space character as the delimiter.

Thanks for your time :)

Was it helpful?

Solution

See my answer here which shows auto completion for JTextComponent, it can show pop up window of auto completion words to the current caret index on JTextPane/JEditorPane (+1 @AndrewThompson for the idea):

For JTextField:

Using JTextField as AutoSugesstor

and for other JTextComponents i.e JTextPane, JEditorPane etc its shown at the current caret index:

enter image description here

To change text colour of words (i.e syntax highlight) have a look here:

enter image description here

Or if you want rather a highlighted word. See here:

enter image description here

OTHER TIPS

you can look at components from jintilla (a JNI wrapper around the widely used scintilla) or jedit if their licensing terms fit your use case.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top