SciTE (Scintilla Text Editor) supports API and Keyword files to customize some aspects of the editor for a given programming language. Keywords files extend the highlighting of source code files (i.e. Class names in Java), and API files allow to displays calltips, basic form of the popular Microsoft Intellisense®. The BeanShell script, SciteJavaApi.bsh, generates both the Java API and the Keyword files for your current Java Runtime Environment.
- Product: SciTE Java API
- Version: 1.6
- Date: 07/10/2011
- Operating System: Win32/Linux/Mac OS X
- License: Open Source Software, MIT License
- Download Script: SciteJavaApi16.zip
- Download Script and BeanShell2 2.1b2: SciteJavaApi16_bsh.zip
- Download Java API Files: SciteJavaApi_api_files.zip
If you just need the API and Keyword files, download SciteJavaApi_api_files.zip and jump to section SciTE Configuration.
In order to run
SciteJavaApi.bsh you need:
- A recent version of the Java Runtime Environment.
- A recent version of the Java Dynamic Language BeanShell. Some packages available for download already include the BeanShell library.
Of course, you also need SciTE (Scintilla Text Editor) in order to use the Java API files.
Installation and Usage
- Download the latest release: SciteJavaApi16.zip. If you don’t have already BeanShell, download the package including it: SciteJavaApi16_bsh.zip.
- Extract the content of the SciteJavaApi zip file to your hard drive.
$ java -XX:MaxPermSize=128m -cp bsh-2.1b2.jar bsh.Interpreter SciteJavaApi.bsh
- You should get the following output:
Start ClassPath Mapping Mapping: Archive: file:/Users/andre/SciteJavaApi/bsh-2.1b2.jar Mapping: Archive: file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar End ClassPath Mapping ====================================== Beanshell SciteJavaApi Version 1.6 July 10, 2011 Copyright 2000-2011 (c) Andre Burgaud ====================================== BeanShell 2.1b2 - http://code.google.com/p/beanshell2 Java 1.6.0_26 - by Apple Inc. ====================================== Beanshell SciTETools Menu - Type "q|Q" and [ENTER] to quit. - Type "1" and [ENTER] to build a Java Keywords file for SciTE. - Type "2" and [ENTER] to build a Java Api file for SciTE. Your choice:
- Choose 1 or 2 to generate respectively the Java Keywords file or the Java API file.
- To generate the API files for a different Java version, invoke the corresponding Java command. You can achieve this by using the environment variable JAVA_HOME. See the shell script java_api.sh and windows batch file java_api.bat included in the package for more detailed examples.
- After generating the API files, you can configure SciTE.
- Copy the Java API and keywords files in the install directory of SciTE (where the default SciTE properties files are).
- Assuming that the API and Keywords files are respectively: java150.api and java150_kwd.properties.
- Open the file cpp.properties available in the install directory of SciTE.
- Add the following lines (check first if similar lines are already existing and modify accordingly):
import java160_26_kwd api.*.java=$(SciteDefaultHome)\java160_26.api calltip.java.word.characters=._$(word.chars.cxx) calltip.java.parameters.start=( calltip.java.parameters.start=) calltip.java.parameters.separators=.
Note: In versions prior to 1.5,
SciteJavaApi.bsh generated the
keyword file with the format
java140.kwd. You had to rename the file
java140_kwd.properties, in order to allow the import to work.
Configuring SciTE as explained above will enable the following features:
- Java classes highlighting,
- Auto completion.
Java Classes Highlighting
The Java classes highlighting is automatically enabled due to the import of the keywords file. Classes are highlighted as shown in the following screen capture:
To modify the highlight color, modify the value of the style associated
keyword2 in the file
... # Keywords2 style.cpp.16=fore:#B00040 ...
Note: To limit the size of the keywords properties file, only
classes from packages started with java are included. This excludes
javax packages for example.
calltip configuration, such as the one described in the
section Scite Configuration, when you type the open parenthesis
after a method name, a scrollable pop-up help box displays the possible
parameters of this method. You can enter the parameters accordingly, and
also use the mouse to navigate up and down to see the other method
signatures. You can also invoke calltips by pressing Ctrl+Shift+Space
with the cursor located inside of the method parameter parenthesis.
SciTE allows you to customize the behavior of the word completion
feature, based on the source code being edited. In the case of Java, I
simply suggest to take advantage of the the word completion from the API
file by invoking it via the shortcut key
Ctrl+i, as shown
in the screen capture below:
Though not directly related to the auto completion provided by the API file, there is another auto completion feature available in SciTE. By typing Ctrl+Enter just after at least one character, SciTE will open a list of words already available in your file and matching the first characters of the word being typed.
- Version 1.6 of the BeanShell script was tested with BeanShell 2.0b5 and BeanShell2 2.1b2, J2SE 1.6.0_25 and 1.6.0_26 on Mac OS X 10.6.8 and Windows 7.
- Version 1.5 of the BeanShell script was tested with BeanShell 2.0b4
and 2.0b5, Java 1.3.1, 1.4.2, 1.5.0 and 1.6.0, on Windows XP and
Linux. BeanShell 2.0b5 is not compatible with Java 1.3.1 and Java
1.4.2: it causes the error
- Version 1.4 of the BeanShell script was tested with BeanShell 1.3, 2.0b2 and 2.0b4, Java 1.4.2 and 5.0.
- Version 1.3 of the BeanShell script was tested with BeanShell 2.0b1. It is not compatible with previous versions of BeanShell.
- Version 1.2 of the script is not compatible with BeanShell 1.3 nor 2.0b1. It is only working with BeanShell 1.2.
Version 1.6 - 07/10/2011
- Tested with BeanShell 2.0b5 and BeanShell2 2.1b2, J2SE 1.6.0_25 and 1.6.0_26.
- Fixed an issue raised by Jaleks in the comments on 7/9/2011 (
- The script needs to be executed with larger
MaxPermSize. Example on Linux:
$ java -XX:MaxPermSize=128m -cp bsh-2.1b2.jar bsh.Interpreter SciteJavaApi.bsh
- Known issues:
- A stack trace related to the initialization
sun.management.ManagementFactoryis displayed during the API generation, but does not interrupt the script.
- Some output generated by static initialization are polluting the script output. This does not impact the generation of the API file.
- A stack trace related to the initialization of
Version 1.5 - 12/20/2006
- Tested with BeanShell 2.0b5 and 2.0b4, J2SE 1.5.0 and 1.6.0.
- Modified the keywords sort to improve performance.
- Moved instruction and documentation to the web site.
- Removed the full package name for class names in the API list.
Version 1.4 - 12/05/2004
- Tested with BeanShell 1.3 and 2.0b2, Java 1.4.2 and 1.5.0.
- Made modifications to maintain backward compatibility with BeanShell 1.3.
getCollectionApi(). This exception occurred with the class
sun.font.FontManagerin J2SE (Thank you Marcelo!).
Version 1.3 - 07/30/2004
- Modified to run with BeanShell 2.0b1.
- Tested with BeanShell 2.01b1 and J2SE 1.4.2_05.
- Not compatible with earlier version of BeanShell.
Version 1.2 - 04/06/2002
- Fixed bugs with JDK 1.4.0.
Version 1.1 - 01/08/2002
- First version published on line.
Version 1.0b - 10/01/2001
- Initial version.
Patrick Niemeyer, BeanShell creator, is the author of the book Learning Java. This book has a short appendix dedicated to BeanShell.
- ApiBuilder.java generates API file for Java classes.
- Java API and Keywords Files (1.6.0_26, 1.6.0, 1.5.0, 1.4.2 and 1.3.1): SciteJavaApi_api_files.zip
- SciTE Java API 1.6 with BeanShell 2.1b2:SciteJavaApi16_bsh.zip
- SciTE Java API 1.6: SciteJavaApi16.zip
- SciTE Java API 1.5 avec BeanShell 2.0b5: scitejavaapi15_bsh.zip
- SciTE Java API 1.5: scitejavaapi15.zip
- SciTE Java API 1.4 avec BeanShell 2.0b2: scitejavaapi14_bsh.zip
- SciTE Java API 1.4: scitejavaapi14.zip
- SciTE Java API 1.3 avec BeanShell 2.0b1: scitejavaapi13_bsh.zip
- SciTE Java API 1.3: scitejavaapi13.zip
- SciTE Java API 1.2: scitejavaapi12.zip
- SciTE Java API 1.1: scitejavaapi11.zip