From 8381a3304dcc8144a340bf8ed5331c387ee5d8e4 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Thu, 5 Feb 2026 21:33:32 +0000 Subject: [PATCH 1/3] Add script to set up IntelliJ IDEA. From the prism subirectory, run etc/intellij/install.sh Or to overwrite existing config: etc/intellij/install.sh -f --- prism/etc/intellij/PrismCL.xml | 11 ++++++++++ prism/etc/intellij/install.sh | 39 ++++++++++++++++++++++++++++++++++ prism/etc/intellij/lib.xml | 16 ++++++++++++++ prism/etc/intellij/modules.xml | 8 +++++++ prism/etc/intellij/prism.iml | 17 +++++++++++++++ 5 files changed, 91 insertions(+) create mode 100644 prism/etc/intellij/PrismCL.xml create mode 100755 prism/etc/intellij/install.sh create mode 100644 prism/etc/intellij/lib.xml create mode 100644 prism/etc/intellij/modules.xml create mode 100644 prism/etc/intellij/prism.iml diff --git a/prism/etc/intellij/PrismCL.xml b/prism/etc/intellij/PrismCL.xml new file mode 100644 index 0000000000..3ce16a5db1 --- /dev/null +++ b/prism/etc/intellij/PrismCL.xml @@ -0,0 +1,11 @@ + + + + diff --git a/prism/etc/intellij/install.sh b/prism/etc/intellij/install.sh new file mode 100755 index 0000000000..7dac8fa9d0 --- /dev/null +++ b/prism/etc/intellij/install.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Path logic +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" + +# Check for force flag +FORCE=false +for arg in "$@"; do + if [ "$arg" == "--force" ] || [ "$arg" == "-f" ]; then + FORCE=true + fi +done + +copy_file() { + local src="$1" + local dest="$2" + local display_path=${dest#"$PROJECT_ROOT/"} + if [ -f "$dest" ] && [ "$FORCE" = false ]; then + echo "⚠️ Skipping $display_path (already exists). Use -f to overwrite." + else + cp "$src" "$dest" && echo "✅ Installed $display_path" + fi +} + +echo "🚀 Setting up IntelliJ configuration for PRISM..." + +# Ensure directories exist +mkdir -p "$PROJECT_ROOT/.idea/libraries" +mkdir -p "$PROJECT_ROOT/.idea/runConfigurations" + +# Execute copies +echo "Project root: $PROJECT_ROOT" +copy_file "$SCRIPT_DIR/prism.iml" "$PROJECT_ROOT/prism.iml" +copy_file "$SCRIPT_DIR/modules.xml" "$PROJECT_ROOT/.idea/modules.xml" +copy_file "$SCRIPT_DIR/lib.xml" "$PROJECT_ROOT/.idea/libraries/lib.xml" +copy_file "$SCRIPT_DIR/PrismCL.xml" "$PROJECT_ROOT/.idea/runConfigurations/PrismCL.xml" + +echo -e "Done. Now open the project in IntelliJ IDEA." diff --git a/prism/etc/intellij/lib.xml b/prism/etc/intellij/lib.xml new file mode 100644 index 0000000000..a518fb86f8 --- /dev/null +++ b/prism/etc/intellij/lib.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/prism/etc/intellij/modules.xml b/prism/etc/intellij/modules.xml new file mode 100644 index 0000000000..6f011765a6 --- /dev/null +++ b/prism/etc/intellij/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/prism/etc/intellij/prism.iml b/prism/etc/intellij/prism.iml new file mode 100644 index 0000000000..570679c5f1 --- /dev/null +++ b/prism/etc/intellij/prism.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file From 3a4ceea11c10c2b7778c222c872604e3f5087f06 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Sat, 7 Feb 2026 10:16:29 +0000 Subject: [PATCH 2/3] Add "make intellij" to set up IntelliJ IDEA. --- prism/Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/prism/Makefile b/prism/Makefile index 780549e544..b089a90a92 100644 --- a/prism/Makefile +++ b/prism/Makefile @@ -718,4 +718,12 @@ clean_param: checks clean_strat: checks @(cd $(PRISM_SRC_DIR)/strat && $(MAKE) -s EXE="$(EXE)" clean) +############### +# IDE support # +############### + +# Set up for IntelliJ IDEA +intellij: + etc/intellij/install.sh + ################################################# From 9eb5a38861ccc29b9460a0ee21f4d6f3b78376f5 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Sat, 7 Feb 2026 11:48:36 +0000 Subject: [PATCH 3/3] IntelliJ: intellij/install.sh -s symlinks instead of copies. --- prism/etc/intellij/install.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/prism/etc/intellij/install.sh b/prism/etc/intellij/install.sh index 7dac8fa9d0..2840cdf019 100755 --- a/prism/etc/intellij/install.sh +++ b/prism/etc/intellij/install.sh @@ -12,6 +12,14 @@ for arg in "$@"; do fi done +# Check for symlink flag +SYMLINK=false +for arg in "$@"; do + if [ "$arg" == "--symlink" ] || [ "$arg" == "-s" ]; then + SYMLINK=true + fi +done + copy_file() { local src="$1" local dest="$2" @@ -19,7 +27,11 @@ copy_file() { if [ -f "$dest" ] && [ "$FORCE" = false ]; then echo "⚠️ Skipping $display_path (already exists). Use -f to overwrite." else - cp "$src" "$dest" && echo "✅ Installed $display_path" + if [ "$SYMLINK" = false ]; then + cp "$src" "$dest" && echo "✅ Installed $display_path" + else + rm "$dest" && ln -s "$src" "$dest" && echo "✅ Installed $display_path (symlink)" + fi fi }