# HG changeset patch # User wenzelm # Date 1307559531 -7200 # Node ID 04d473e883df27f497b4d1bc983a3911c9172729 # Parent 446e6621762db8f591c724ec2497a09768eb452f build jedit as part of regular startup script (in that case depending on jedit_build component); misc tuning and simplification; diff -r 446e6621762d -r 04d473e883df etc/components --- a/etc/components Wed Jun 08 17:49:01 2011 +0200 +++ b/etc/components Wed Jun 08 20:58:51 2011 +0200 @@ -11,6 +11,7 @@ src/Sequents #misc components src/Tools/Code +src/Tools/jEdit src/Tools/WWW_Find src/HOL/Tools/ATP src/HOL/Mirabelle diff -r 446e6621762d -r 04d473e883df src/Tools/jEdit/dist-template/etc/isabelle-jedit.css --- a/src/Tools/jEdit/dist-template/etc/isabelle-jedit.css Wed Jun 08 17:49:01 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -/* additional style file for Isabelle/jEdit output */ - -.message { margin-top: 0.3ex; background-color: #F0F0F0; } - -.writeln { } -.tracing { background-color: #F0F8FF; } -.warning { background-color: #EEE8AA; } -.error { background-color: #FFC1C1; } - -.report { display: none; } - -.hilite { background-color: #FFCC66; } - -.keyword { font-weight: bold; color: #009966; } -.operator { font-weight: bold; } -.command { font-weight: bold; color: #006699; } - -.sendback { text-decoration: underline; } -.sendback:hover { background-color: #FFCC66; } diff -r 446e6621762d -r 04d473e883df src/Tools/jEdit/dist-template/etc/settings --- a/src/Tools/jEdit/dist-template/etc/settings Wed Jun 08 17:49:01 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -# -*- shell-script -*- :mode=shellscript: - -JEDIT_HOME="$COMPONENT" -JEDIT_SETTINGS="$ISABELLE_HOME_USER/jedit" - -JEDIT_OPTIONS="-reuseview -noserver -nobackground" -JEDIT_JAVA_OPTIONS="-Xms128m -Xmx1024m -Xss4m -Dactors.corePoolSize=4 -Dactors.enableForkJoin=false" -#JEDIT_JAVA_OPTIONS="-Xms128m -Xmx512m -Xss2m -Dactors.corePoolSize=4 -Dactors.enableForkJoin=false" -JEDIT_SYSTEM_OPTIONS="-Dapple.laf.useScreenMenuBar=true -Dcom.apple.mrj.application.apple.menu.about.name=Isabelle/jEdit" - -JEDIT_STYLE_SHEETS="$ISABELLE_HOME/lib/html/isabelle.css:$JEDIT_HOME/etc/isabelle-jedit.css:$ISABELLE_HOME_USER/etc/isabelle.css:$ISABELLE_HOME_USER/etc/isabelle-jedit.css" - -ISABELLE_JEDIT_OPTIONS="-m xsymbols -m no_brackets -m no_type_brackets" - -ISABELLE_TOOLS="$ISABELLE_TOOLS:$JEDIT_HOME/lib/Tools" - diff -r 446e6621762d -r 04d473e883df src/Tools/jEdit/dist-template/lib/Tools/jedit --- a/src/Tools/jEdit/dist-template/lib/Tools/jedit Wed Jun 08 17:49:01 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -#!/usr/bin/env bash -# -# Author: Makarius -# -# DESCRIPTION: Isabelle/jEdit interface wrapper - - -## diagnostics - -PRG="$(basename "$0")" - -usage() -{ - echo - echo "Usage: isabelle $PRG [OPTIONS] [FILES ...]" - echo - echo " Options are:" - echo " -J OPTION add JVM runtime option" - echo " (default JEDIT_JAVA_OPTIONS=$JEDIT_JAVA_OPTIONS)" - echo " -d enable debugger" - echo " -j OPTION add jEdit runtime option" - echo " (default JEDIT_OPTIONS=$JEDIT_OPTIONS)" - echo " -l NAME logic image name (default ISABELLE_LOGIC=$ISABELLE_LOGIC)" - echo " -m MODE add print mode for output" - echo - echo "Start jEdit with Isabelle plugin setup and opens theory FILES" - echo - exit 1 -} - -fail() -{ - echo "$1" >&2 - exit 2 -} - - -## process command line - -# options - -JEDIT_LOGIC="$ISABELLE_LOGIC" -JEDIT_PRINT_MODE="" - -getoptions() -{ - OPTIND=1 - while getopts "J:dj:l:m:" OPT - do - case "$OPT" in - J) - JAVA_ARGS["${#JAVA_ARGS[@]}"]="$OPTARG" - ;; - d) - JAVA_ARGS["${#JAVA_ARGS[@]}"]="-Xdebug" - JAVA_ARGS["${#JAVA_ARGS[@]}"]="-Xrunjdwp:transport=dt_socket,server=y,suspend=n" - ;; - j) - ARGS["${#ARGS[@]}"]="$OPTARG" - ;; - l) - JEDIT_LOGIC="$OPTARG" - ;; - m) - if [ -z "$JEDIT_PRINT_MODE" ]; then - JEDIT_PRINT_MODE="$OPTARG" - else - JEDIT_PRINT_MODE="$JEDIT_PRINT_MODE,$OPTARG" - fi - ;; - \?) - usage - ;; - esac - done -} - -declare -a JAVA_ARGS; eval "JAVA_ARGS=($JEDIT_JAVA_OPTIONS $JEDIT_SYSTEM_OPTIONS)" -[ -n "$SCALA_HOME" ] && JAVA_ARGS["${#JAVA_ARGS[@]}"]="-Dscala.home=$SCALA_HOME" - -declare -a ARGS; eval "ARGS=($JEDIT_OPTIONS)" - -declare -a OPTIONS; eval "OPTIONS=($ISABELLE_JEDIT_OPTIONS)" -getoptions "${OPTIONS[@]}" - -getoptions "$@" -shift $(($OPTIND - 1)) - - -# args - -while [ "$#" -gt 0 ]; do - ARGS["${#ARGS[@]}"]="$(jvmpath "$1")" - shift -done - - -## default perspective - -mkdir -p "$JEDIT_SETTINGS/DockableWindowManager" - -if [ ! -e "$JEDIT_SETTINGS/perspective.xml" ]; then - cat > "$JEDIT_SETTINGS/DockableWindowManager/perspective-view0.xml" < -EOF - cat > "$JEDIT_SETTINGS/perspective.xml" < - - - - - - -EOF -fi - - -## main - -case "$JEDIT_LOGIC" in - /*) - ;; - */*) - JEDIT_LOGIC="$(pwd -P)/$JEDIT_LOGIC" - ;; -esac - -export JEDIT_LOGIC JEDIT_PRINT_MODE - -exec "$ISABELLE_TOOL" java "${JAVA_ARGS[@]}" \ - -jar "$(jvmpath "$JEDIT_HOME/jedit.jar")" \ - "-settings=$(jvmpath "$JEDIT_SETTINGS")" "${ARGS[@]}" diff -r 446e6621762d -r 04d473e883df src/Tools/jEdit/etc/isabelle-jedit.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Tools/jEdit/etc/isabelle-jedit.css Wed Jun 08 20:58:51 2011 +0200 @@ -0,0 +1,19 @@ +/* additional style file for Isabelle/jEdit output */ + +.message { margin-top: 0.3ex; background-color: #F0F0F0; } + +.writeln { } +.tracing { background-color: #F0F8FF; } +.warning { background-color: #EEE8AA; } +.error { background-color: #FFC1C1; } + +.report { display: none; } + +.hilite { background-color: #FFCC66; } + +.keyword { font-weight: bold; color: #009966; } +.operator { font-weight: bold; } +.command { font-weight: bold; color: #006699; } + +.sendback { text-decoration: underline; } +.sendback:hover { background-color: #FFCC66; } diff -r 446e6621762d -r 04d473e883df src/Tools/jEdit/etc/settings --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Tools/jEdit/etc/settings Wed Jun 08 20:58:51 2011 +0200 @@ -0,0 +1,16 @@ +# -*- shell-script -*- :mode=shellscript: + +JEDIT_HOME="$COMPONENT" +JEDIT_SETTINGS="$ISABELLE_HOME_USER/jedit" + +JEDIT_OPTIONS="-reuseview -noserver -nobackground" +JEDIT_JAVA_OPTIONS="-Xms128m -Xmx1024m -Xss4m -Dactors.corePoolSize=4 -Dactors.enableForkJoin=false" +#JEDIT_JAVA_OPTIONS="-Xms128m -Xmx512m -Xss2m -Dactors.corePoolSize=4 -Dactors.enableForkJoin=false" +JEDIT_SYSTEM_OPTIONS="-Dapple.laf.useScreenMenuBar=true -Dcom.apple.mrj.application.apple.menu.about.name=Isabelle/jEdit" + +JEDIT_STYLE_SHEETS="$ISABELLE_HOME/lib/html/isabelle.css:$JEDIT_HOME/etc/isabelle-jedit.css:$ISABELLE_HOME_USER/etc/isabelle.css:$ISABELLE_HOME_USER/etc/isabelle-jedit.css" + +ISABELLE_JEDIT_OPTIONS="-m xsymbols -m no_brackets -m no_type_brackets" + +ISABELLE_TOOLS="$ISABELLE_TOOLS:$JEDIT_HOME/lib/Tools" + diff -r 446e6621762d -r 04d473e883df src/Tools/jEdit/jedit_build/Tools/jedit --- a/src/Tools/jEdit/jedit_build/Tools/jedit Wed Jun 08 17:49:01 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -#!/usr/bin/env bash -# -# Author: Makarius -# -# DESCRIPTION: build and run Isabelle/jEdit on the spot - -## diagnostics - -function fail() -{ - echo "$1" >&2 - exit 2 -} - -function failed() -{ - fail "Failed!" -} - - -## dependencies - -[ -z "$ISABELLE_HOME" ] && fail "Missing Isabelle settings environment" -[ -z "$SCALA_HOME" ] && fail "Unknown SCALA_HOME -- Scala unavailable" - -[ -z "$ISABELLE_JEDIT_BUILD_HOME" ] && \ - fail "Unknown ISABELLE_JEDIT_BUILD_HOME -- missing auxiliary component" - -[ -e "$ISABELLE_HOME/Admin/build" ] && \ - { "$ISABELLE_HOME/Admin/build" jars || exit $?; } - - -# sources - -SRC_DIR="$ISABELLE_HOME/src/Tools/jEdit" - -declare -a SOURCES=( - "$SRC_DIR/src/dockable.scala" - "$SRC_DIR/src/document_model.scala" - "$SRC_DIR/src/document_view.scala" - "$SRC_DIR/src/html_panel.scala" - "$SRC_DIR/src/isabelle_encoding.scala" - "$SRC_DIR/src/isabelle_hyperlinks.scala" - "$SRC_DIR/src/isabelle_markup.scala" - "$SRC_DIR/src/isabelle_options.scala" - "$SRC_DIR/src/isabelle_sidekick.scala" - "$SRC_DIR/src/output_dockable.scala" - "$SRC_DIR/src/plugin.scala" - "$SRC_DIR/src/protocol_dockable.scala" - "$SRC_DIR/src/raw_output_dockable.scala" - "$SRC_DIR/src/scala_console.scala" - "$SRC_DIR/src/session_dockable.scala" -) - -declare -a PLUGIN_FILES=( - "$SRC_DIR/plugin/actions.xml" - "$SRC_DIR/plugin/dockables.xml" - "$SRC_DIR/plugin/Isabelle.props" - "$SRC_DIR/plugin/services.xml" -) - -JEDIT_JAR="$ISABELLE_JEDIT_BUILD_HOME/contrib/$ISABELLE_JEDIT_BUILD_VERSION/jedit.jar" - -JEDIT_JARS=( - "$ISABELLE_JEDIT_BUILD_HOME/contrib/Console.jar" - "$ISABELLE_JEDIT_BUILD_HOME/contrib/ErrorList.jar" - "$ISABELLE_JEDIT_BUILD_HOME/contrib/Hyperlinks.jar" - "$ISABELLE_JEDIT_BUILD_HOME/contrib/SideKick.jar" - "$ISABELLE_JEDIT_BUILD_HOME/contrib/cobra.jar" - "$ISABELLE_JEDIT_BUILD_HOME/contrib/js.jar" -) - -SCALA_JARS=( - "$SCALA_HOME/lib/scala-compiler.jar" - "$SCALA_HOME/lib/scala-library.jar" - "$SCALA_HOME/lib/scala-swing.jar" -) - - -# target - -TARGET_DIR="$ISABELLE_JEDIT_BUILD_HOME/${ISABELLE_JEDIT_BUILD_VERSION}_Isabelle-$("$ISABELLE_TOOL" version -i)" -TARGET="$TARGET_DIR/jars/Isabelle-jEdit.jar" - -OUTDATED=false -for SOURCE in "${SOURCES[@]}" "${PLUGIN_FILES[@]}" "$JEDIT_JAR" "${JEDIT_JARS[@]}" -do - [ ! -e "$SOURCE" ] && fail "Missing file: $SOURCE" - [ ! -e "$TARGET" -o "$SOURCE" -nt "$TARGET" ] && OUTDATED=true -done - - -## main - -if [ "$OUTDATED" = true ] -then - echo "###" - echo "### Building Isabelle/jEdit ..." - echo "###" - - rm -rf "$TARGET_DIR" || failed - mkdir -p "$TARGET_DIR" "$TARGET_DIR/classes" || failed - cp -a "$ISABELLE_JEDIT_BUILD_HOME/contrib/$ISABELLE_JEDIT_BUILD_VERSION/." "$TARGET_DIR/." - - cp -a "${PLUGIN_FILES[@]}" "$TARGET_DIR/classes/." - cp -a "$SRC_DIR/dist-template/." "$TARGET_DIR/." - cp -a "$SRC_DIR/README" "$TARGET_DIR/." - - perl -i -e 'while (<>) { if (m/NAME="javacc"/) { - print qq,\n\n,; - print qq,\n\n,; } - print; }' "$TARGET_DIR/modes/catalog" - - ( - for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "$SCALA_HOME/lib/scala-compiler.jar" - do - CLASSPATH="$CLASSPATH:$JAR" - done - - cp -a "${JEDIT_JARS[@]}" "${SCALA_JARS[@]}" "$ISABELLE_HOME/lib/classes/Pure.jar" \ - "$TARGET_DIR/jars/." || failed - - declare -a JVM_SOURCES=() - for SOURCE in "${SOURCES[@]}" - do - JVM_SOURCES["${#JVM_SOURCES[@]}"]="$(jvmpath "$SOURCE")" - done - - CLASSPATH="$(jvmpath "$CLASSPATH")" - - "$SCALA_HOME/bin/scalac" -unchecked -deprecation \ - -d "$(jvmpath "$TARGET_DIR/classes")" -target:jvm-1.5 "${JVM_SOURCES[@]}" || \ - fail "Failed to compile sources" - - cd "$TARGET_DIR/classes" - jar cf "../jars/Isabelle-jEdit.jar" * || failed - cd .. - rm -rf classes - ) -fi - -set -o allexport -init_component "$TARGET_DIR" -[ -f "$ISABELLE_JEDIT_BUILD_HOME/etc/user-settings" ] && \ - source "$ISABELLE_JEDIT_BUILD_HOME/etc/user-settings" -set +o allexport - -exec "$TARGET_DIR/lib/Tools/jedit" "$@" diff -r 446e6621762d -r 04d473e883df src/Tools/jEdit/lib/Tools/jedit --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Tools/jEdit/lib/Tools/jedit Wed Jun 08 20:58:51 2011 +0200 @@ -0,0 +1,255 @@ +#!/usr/bin/env bash +# +# Author: Makarius +# +# DESCRIPTION: Isabelle/jEdit interface wrapper + + +## diagnostics + +PRG="$(basename "$0")" + +function usage() +{ + echo + echo "Usage: isabelle $PRG [OPTIONS] [FILES ...]" + echo + echo " Options are:" + echo " -J OPTION add JVM runtime option" + echo " (default JEDIT_JAVA_OPTIONS=$JEDIT_JAVA_OPTIONS)" + echo " -d enable debugger" + echo " -j OPTION add jEdit runtime option" + echo " (default JEDIT_OPTIONS=$JEDIT_OPTIONS)" + echo " -l NAME logic image name (default ISABELLE_LOGIC=$ISABELLE_LOGIC)" + echo " -m MODE add print mode for output" + echo + echo "Start jEdit with Isabelle plugin setup and opens theory FILES" + echo + exit 1 +} + +function fail() +{ + echo "$1" >&2 + exit 2 +} + +function failed() +{ + fail "Failed!" +} + + +## process command line + +# options + +JEDIT_LOGIC="$ISABELLE_LOGIC" +JEDIT_PRINT_MODE="" + +function getoptions() +{ + OPTIND=1 + while getopts "J:dj:l:m:" OPT + do + case "$OPT" in + J) + JAVA_ARGS["${#JAVA_ARGS[@]}"]="$OPTARG" + ;; + d) + JAVA_ARGS["${#JAVA_ARGS[@]}"]="-Xdebug" + JAVA_ARGS["${#JAVA_ARGS[@]}"]="-Xrunjdwp:transport=dt_socket,server=y,suspend=n" + ;; + j) + ARGS["${#ARGS[@]}"]="$OPTARG" + ;; + l) + JEDIT_LOGIC="$OPTARG" + ;; + m) + if [ -z "$JEDIT_PRINT_MODE" ]; then + JEDIT_PRINT_MODE="$OPTARG" + else + JEDIT_PRINT_MODE="$JEDIT_PRINT_MODE,$OPTARG" + fi + ;; + \?) + usage + ;; + esac + done +} + +declare -a JAVA_ARGS; eval "JAVA_ARGS=($JEDIT_JAVA_OPTIONS $JEDIT_SYSTEM_OPTIONS)" +[ -n "$SCALA_HOME" ] && JAVA_ARGS["${#JAVA_ARGS[@]}"]="-Dscala.home=$SCALA_HOME" + +declare -a ARGS; eval "ARGS=($JEDIT_OPTIONS)" + +declare -a OPTIONS; eval "OPTIONS=($ISABELLE_JEDIT_OPTIONS)" +getoptions "${OPTIONS[@]}" + +getoptions "$@" +shift $(($OPTIND - 1)) + + +# args + +while [ "$#" -gt 0 ] +do + ARGS["${#ARGS[@]}"]="$(jvmpath "$1")" + shift +done + + +## dependencies + +pushd "$JEDIT_HOME" || failed + + +# sources + +declare -a SOURCES=( + "src/dockable.scala" + "src/document_model.scala" + "src/document_view.scala" + "src/html_panel.scala" + "src/isabelle_encoding.scala" + "src/isabelle_hyperlinks.scala" + "src/isabelle_markup.scala" + "src/isabelle_options.scala" + "src/isabelle_sidekick.scala" + "src/output_dockable.scala" + "src/plugin.scala" + "src/protocol_dockable.scala" + "src/raw_output_dockable.scala" + "src/scala_console.scala" + "src/session_dockable.scala" +) + +declare -a PLUGIN_FILES=( + "plugin/actions.xml" + "plugin/dockables.xml" + "plugin/Isabelle.props" + "plugin/services.xml" +) + +JEDIT_JAR="$ISABELLE_JEDIT_BUILD_HOME/contrib/$ISABELLE_JEDIT_BUILD_VERSION/jedit.jar" + +JEDIT_JARS=( + "$ISABELLE_JEDIT_BUILD_HOME/contrib/Console.jar" + "$ISABELLE_JEDIT_BUILD_HOME/contrib/ErrorList.jar" + "$ISABELLE_JEDIT_BUILD_HOME/contrib/Hyperlinks.jar" + "$ISABELLE_JEDIT_BUILD_HOME/contrib/SideKick.jar" + "$ISABELLE_JEDIT_BUILD_HOME/contrib/cobra.jar" + "$ISABELLE_JEDIT_BUILD_HOME/contrib/js.jar" +) + +SCALA_JARS=( + "$SCALA_HOME/lib/scala-compiler.jar" + "$SCALA_HOME/lib/scala-library.jar" + "$SCALA_HOME/lib/scala-swing.jar" +) + + +# target + +TARGET="dist/jars/Isabelle-jEdit.jar" + +OUTDATED=false +for SOURCE in "${SOURCES[@]}" "${PLUGIN_FILES[@]}" "$JEDIT_JAR" "${JEDIT_JARS[@]}" +do + [ ! -e "$SOURCE" ] && fail "Missing file: $SOURCE" + [ ! -e "$TARGET" -o "$SOURCE" -nt "$TARGET" ] && OUTDATED=true +done + + +# build + +if [ "$OUTDATED" = true ] +then + echo "###" + echo "### Building Isabelle/jEdit ..." + echo "###" + + [ -z "$SCALA_HOME" ] && fail "Unknown SCALA_HOME -- Scala unavailable" + + [ -z "$ISABELLE_JEDIT_BUILD_HOME" ] && \ + fail "Unknown ISABELLE_JEDIT_BUILD_HOME -- missing auxiliary component" + + [ -e "$ISABELLE_HOME/Admin/build" ] && \ + { "$ISABELLE_HOME/Admin/build" jars || exit $?; } + + + rm -rf dist || failed + mkdir -p dist dist/classes || failed + cp -a "$ISABELLE_JEDIT_BUILD_HOME/contrib/$ISABELLE_JEDIT_BUILD_VERSION/." dist/. + + cp -a "${PLUGIN_FILES[@]}" dist/classes/. + cp -a dist-template/. dist/. + cp -a README dist/. + + perl -i -e 'while (<>) { if (m/NAME="javacc"/) { + print qq,\n\n,; + print qq,\n\n,; } + print; }' dist/modes/catalog + + cp -a "${JEDIT_JARS[@]}" "${SCALA_JARS[@]}" "$ISABELLE_HOME/lib/classes/Pure.jar" \ + dist/jars/. || failed + + ( + for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "$SCALA_HOME/lib/scala-compiler.jar" + do + CLASSPATH="$CLASSPATH:$JAR" + done + CLASSPATH="$(jvmpath "$CLASSPATH")" + + exec "$SCALA_HOME/bin/scalac" -unchecked -deprecation \ + -d dist/classes -target:jvm-1.5 "${SOURCES[@]}" + ) || fail "Failed to compile sources" + + cd dist/classes + jar cf "../jars/Isabelle-jEdit.jar" * || failed + cd ../.. + rm -rf dist/classes +fi + +popd >/dev/null + + +## main + +# perspective + +mkdir -p "$JEDIT_SETTINGS/DockableWindowManager" + +if [ ! -e "$JEDIT_SETTINGS/perspective.xml" ]; then + cat > "$JEDIT_SETTINGS/DockableWindowManager/perspective-view0.xml" < +EOF + cat > "$JEDIT_SETTINGS/perspective.xml" < + + + + + + +EOF +fi + + +# run + +case "$JEDIT_LOGIC" in + /*) + ;; + */*) + JEDIT_LOGIC="$(pwd -P)/$JEDIT_LOGIC" + ;; +esac + +export JEDIT_LOGIC JEDIT_PRINT_MODE + +exec "$ISABELLE_TOOL" java "${JAVA_ARGS[@]}" \ + -jar "$(jvmpath "$JEDIT_HOME/dist/jedit.jar")" \ + "-settings=$(jvmpath "$JEDIT_SETTINGS")" "${ARGS[@]}"