From: Colin Clark Date: Wed, 24 Mar 2021 12:49:48 +0000 (+0000) Subject: Doxygen helper script X-Git-Tag: v1.7~143 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=6fcc1f605927429d306621ed6af31bdaed1036b5 Doxygen helper script The script may be used to integrate the Doxygen html files into a code editor. Set a code editor hot key to pass a variable or function name to the script. The relevant Doxygen file will be displayed in a browser window. --- diff --git a/CODING b/CODING index 51debffe..7894751a 100644 --- a/CODING +++ b/CODING @@ -213,3 +213,6 @@ can use see http://www.stack.nl/~dimitri/doxygen/commands.html. But in case just think about that the documentation is for other developers not for the end user. So keep the focus. + +The file ./scripts/doxygen-help.sh may be used to integrate access to the +Doxygen files into a code editor. diff --git a/scripts/doxygen-help.sh b/scripts/doxygen-help.sh new file mode 100755 index 00000000..85db88b9 --- /dev/null +++ b/scripts/doxygen-help.sh @@ -0,0 +1,101 @@ +#!/bin/bash + +#********************************************************************** +# Copyright (C) 2021 - The Geeqie Team +# +# Author: Colin Clark +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +#********************************************************************** +# +# Facilitate the integration of the Doxygen html files +# into a code editor. +# +# doxygen-help.sh +# +# The environment variable DOCDIR must be set to point to the +# Doxygen html files location. +# The environment variable PROJECT must be set to the value used +# when creating the Doxygen files. +# +# Set a hot key in the code editor to call this script with +# the highlighted variable or function name as a parameter. +# +# The file $DOCDIR/$PROJECT.tag contains an index of all documented +# items and is scanned to locate the relevant html section. +# +# xdg-open is used to call the html browser to display the document. +# +#********************************************************************** +# +# To generate the Doxygen html files set the following +# environment variables: +# DOCDIR (destination folder) +# SRCDIR (must point to the level above the source code) +# PROJECT +# VERSION +# +# Then run 'doxygen doxygen.conf' + +if [[ -z "${DOCDIR}" ]] +then + echo "Environment variable DOCDIR not set" + zenity --title="Geeqie" --width=200 --warning --text="Environment variable DOCDIR not set" +elif [[ -z "${PROJECT}" ]] +then + echo "Environment variable PROJECT not set" + zenity --title="Geeqie" --width=200 --warning --text="Environment variable PROJECT not set" +else + awk -v search_param="$1" -v docdir="$DOCDIR" ' + { + if ($1 == "_"search_param"") + { + found=0 + while (found == 0) + { + getline + n=split($1, anchorfile, /[<>]/) + if (anchorfile[2] == "anchorfile") + { + found=1 + } + } + data_result="file://"docdir"/html/" anchorfile[3] + } + else + { + if ($1 == ""search_param"") + { + getline + n=split($1, anchorfile, /[<>]/) + + getline + n=split($1, anchor, /[<>]/) + function_result="file://"docdir"/html/" anchorfile[3] "#" anchor[3] + } + } + } + END { + if (data_result != "") + { + print data_result + } + else if (function_result != "") + { + print function_result + } + } + ' $DOCDIR/$PROJECT.tag | while read -r file; do xdg-open "$file"; done +fi