1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-01 08:17:38 +00:00
emacs/lisp/progmodes/idlw-toolbar.el

932 lines
28 KiB
EmacsLisp
Raw Normal View History

* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE -*- lexical-binding: t; -*-
2007-01-21 03:53:13 +00:00
2024-01-02 01:47:10 +00:00
;; Copyright (C) 1999-2024 Free Software Foundation, Inc.
2000-01-03 14:23:13 +00:00
;; Author: Carsten Dominik <dominik@astro.uva.nl>
;; Maintainer: emacs-devel@gnu.org
2000-01-03 14:23:13 +00:00
;; Keywords: processes
;; Package: idlwave
2000-01-03 14:23:13 +00:00
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
2000-01-03 14:23:13 +00:00
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
2000-01-03 14:23:13 +00:00
;; GNU Emacs 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 GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
2000-01-03 14:23:13 +00:00
;;; Commentary:
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
;; This file implements a debugging toolbar for IDLWAVE.
;; It requires toolbar and xpm support.
2000-01-03 14:23:13 +00:00
;; New versions of IDLWAVE, documentation, and more information
;; available from:
;; https://github.com/jdtsmith/idlwave
2000-01-03 14:23:13 +00:00
;;; Code:
(defun idlwave-toolbar-make-button (image)
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
(list 'image :type 'xpm :data image))
2000-01-03 14:23:13 +00:00
(defvar idlwave-toolbar)
2006-04-06 18:42:40 +00:00
(defvar default-toolbar)
(defvar idlwave-toolbar-is-possible)
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
(if (not (and (boundp 'tool-bar-button-margin) ; need toolbar
(fboundp 'image-type-available-p) ; need image stuff
(image-type-available-p 'xpm)) ; need xpm
)
2000-01-03 14:23:13 +00:00
;; oops - cannot do the toolbar
(message "Sorry, IDLWAVE xpm toolbar cannot be used on this version of Emacs")
;; OK, we can define a toolbar
(defconst idlwave-toolbar-is-possible t
"When defined, indicates that a toolbar is possible with this Emacs.")
2000-01-03 14:23:13 +00:00
(defvar idlwave-toolbar-compile-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 2 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\" \",
\" \",
\" \",
\" . \",
\" .. ... .. \",
\" .... ... .... \",
\" ............. \",
\" ........... \",
\" ................... \",
\" ........ ........ \",
\" ..... ........ \",
\" .... ......... \",
\" ..... .. ... ..... \",
\" ...... .. .. ...... \",
\" ..... ... .. ..... \",
\" ......... .... \",
\" ........ ..... \",
\" ........ ........ \",
\" ................... \",
\" ........... \",
\" ............. \",
\" .... ... .... \",
\" .. ... .. \",
\" . \",
\" \",
\" \",
\" \",
\" \"};")
"The compile icon.")
(defvar idlwave-toolbar-next-error-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" R \",
\" RR RRR RR \",
\" RRRR RRR RRRR \",
\" RRRRRRRRRRRRR \",
\" RRRRRRRRRRR \",
\" RRRRRRRRRRRRRRRRRRR \",
\" RRRRRRRR \",
\" RRRRR \",
\" RRRR \",
\" ........ \",
\" ........ \",
\" ......... \",
\" ..... .. ... ..... \",
\" ...... .. .. ...... \",
\" ..... ... .. ..... \",
\" ......... .... \",
\" ........ ..... \",
\" ........ ........ \",
\" ................... \",
\" ........... \",
\" ............. \",
\" .... ... .... \",
\" .. ... .. \",
\" . \",
\" \",
\" \"};")
"The Next Error icon.")
(defvar idlwave-toolbar-stop-at-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" \",
\" \",
\" ........ \",
\" .RRRRRRRR. \",
\" .RRRRRRRRRR. \",
\" .RRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRR. \",
\" .RRRRRRRRRR. \",
\" .RRRRRRRR. \",
\" ........ \",
\" \",
\" \",
\" \",
\" \"};")
"The Stop At icon.")
(defvar idlwave-toolbar-clear-at-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" \",
\" ... ... \",
\" ... ........ ... \",
\" ... .RRRRRRRR. ... \",
\" ....RRRRRRRRRR.... \",
\" ...RRRRRRRRRR... \",
\" ....RRRRRRRR.... \",
\" .RR...RRRRRR...RR. \",
\" .RRRR...RRRR...RRRR. \",
\" .RRRRR...RR...RRRRR. \",
\" .RRRRRR......RRRRRR. \",
\" .RRRRRRR....RRRRRRR. \",
\" .RRRRRRR....RRRRRRR. \",
\" .RRRRRR......RRRRRR. \",
\" .RRRRR...RR...RRRRR. \",
\" .RRRR...RRRR...RRRR. \",
\" .RR...RRRRRR...RR. \",
\" ....RRRRRRRR.... \",
\" ...RRRRRRRRRR... \",
\" ....RRRRRRRRRR.... \",
\" ... .RRRRRRRR. ... \",
\" ... ........ ... \",
\" ... ... \",
\" \",
\" \",
\" \"};")
"The Clear At icon.")
(defvar idlwave-toolbar-clear-all-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 4 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"X c #FFFFFFFFFFFF\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" \",
\" .. .... .... .. \",
\" ...RRRR. .RRRR... \",
\" ...RRRR. .RRRR... \",
\" .R...RRRR. .RRRR...R. \",
\" .RR...RRR. .RRR...RR. \",
\" .RRR...RR. .RR...RRR. \",
\" .RRRR...R. .R...RRRR. \",
\" .RRRR... ...RRRR. \",
\" .RRRR... ...RRRR. \",
\" .... ... ... .... \",
\" ..... \",
\" ... \",
\" .... ..... .... \",
\" .RRRR.... ....RRRR. \",
\" .RRRRR... ...RRRRR. \",
\" .RRRRR.... ....RRRRR. \",
\" .RRRR...R. .R...RRRR. \",
\" .RRR...RR. .RR...RRR. \",
\" .RR...RRR. .RRR...RR. \",
\" ....RRR. .RRR.... \",
\" ...RRR. .RRR... \",
\" ....... ....... \",
\" \",
\" \",
\" \"};")
"The Clear-All icon.")
(defvar idlwave-toolbar-stop-beginning-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 4 1\",
\" c None s backgroundToolBarColor\",
\". c #000000000000\",
\"X c #FFFF00000000\",
\"_ c #FFFFFFFFFFFF\",
\" \",
\" \",
\" \",
\" \",
\" ........ \",
\" .XXXXXXXX. \",
\" .XXXXXXXXXX. \",
\" .XXXXXXXXXXXX. \",
\" .XX..XXXXXXXXXX. \",
\" .XX.XX.X______XXX. \",
\" .XXX.XX.X______XXXX. \",
\" .XXXX..XXXXXXXXXXXX. \",
\" .XXXXXXXXXX____XXXX. \",
\" .XXXXXXXXXX____XXXX. \",
\" .XXXXXXXXXXXXXXXXXX. \",
\" .XXXXXXXXXX____XXXX. \",
\" .XXXXXXXXXX____XXXX. \",
\" .XXXXXXXXXXXXXXXXXX. \",
\" .XXXXXXXXX____XXX. \",
\" .XXXXXXXX____XX. \",
\" .XXXXXXXXXXXX. \",
\" .XXXXXXXXXX. \",
\" .XXXXXXXX. \",
\" ........ \",
\" \",
\" \",
\" \",
\" \"};")
"The Stop at Beginning icon.")
(defvar idlwave-toolbar-stop-in-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 4 1\",
\" c None s backgroundToolBarColor\",
\"_ c #FFFFFFFFFFFF\",
\". c #000000000000\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" \",
\" \",
\" ........ \",
\" .RRRRRRRR. \",
\" .RRRRRRRRRR. \",
\" .RRRRRRRRRRRR. \",
\" .RRR___RR___RRR. \",
\" .RRRR__RRRR__RRRR. \",
\" .RRRRR__RRRR__RRRRR. \",
\" .RRRRR__RRRR__RRRRR. \",
\" .RRRRR__RRRR__RRRRR. \",
\" .RRRR__RRRRRR__RRRR. \",
\" .RRRRR__RRRR__RRRRR. \",
\" .RRRRR__RRRR__RRRRR. \",
\" .RRRRR__RRRR__RRRRR. \",
\" .RRRRR__RRRR__RRRRR. \",
\" .RRRR___RR___RRRR. \",
\" .RRRRRRRRRRRRRR. \",
\" .RRRRRRRRRRRR. \",
\" .RRRRRRRRRR. \",
\" .RRRRRRRR. \",
\" ........ \",
\" \",
\" \",
\" \",
\" \"};")
"The Stop in icon.")
2000-01-03 14:23:13 +00:00
(defvar idlwave-toolbar-edit-cmd-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 2 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" .. \",
\" .. \",
\" .. \",
\" .. \",
\" .. \",
\" \",
\" \",
\" ................. \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The edit-cmd icon.")
2000-01-03 14:23:13 +00:00
(defvar idlwave-toolbar-run-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". s FgColor c #000000000000\",
\"G c #0000BBBB0000\",
\" \",
\" \",
\" \",
\" \",
\" ..... \",
\" .GGG. \",
\" .GGG. \",
\" .GGG. ....... \",
\" .GGG. \",
\" .GGG. \",
\" .GGG. ....... \",
\" .GGG. \",
\" ....GGG.... \",
\" .GGGGGGG. ....... \",
\" .GGGGG. \",
\" .GGG. \",
\" .G. ....... \",
\" . \",
\" \",
\" ....... \",
\" \",
\" \",
\" ....... \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The Run icon.")
(defvar idlwave-toolbar-cont-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". s FgColor c #000000000000\",
\"G c #0000BBBB0000\",
\" \",
\" \",
\" \",
\" ....... \",
\" \",
\" ....... \",
\" .GGGGGG. ....... \",
\" .GGGGGGG. \",
\" .GGG..... \",
\" .GGG. ....... \",
\" .GGG. \",
\" .GGG. \",
\" .GGG. ....... \",
\" .GGG. \",
\" ....GGG.... \",
\" .GGGGGGG. ....... \",
\" .GGGGG. \",
\" .GGG. \",
\" .G. ....... \",
\" . \",
\" \",
\" ....... \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The Cont icon.")
2000-01-03 14:23:13 +00:00
(defvar idlwave-toolbar-to-here-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 4 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"G c #0000BBBB0000\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" ..... ........ \",
\" .GGGG. \",
\" .GGGGG. \",
\" .GG.... ........ \",
\" .GG. \",
\" .GG. . \",
\" .GG. .. \",
\" .GG. .G. ...... \",
\" .GG...GG. \",
\" .GGGGGGGG. RRRRRR \",
\" .GGGGGGGGG. RRRRRR \",
\" .GGGGGGG. RRRRRR \",
\" ....GG. \",
\" .G. ...... \",
\" .. \",
\" . \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The Cont-to-here icon.")
(defvar idlwave-toolbar-step-over-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"G c #0000BBBB0000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" ..... \",
\" .GGGG. ....... \",
\" .GGGGG. \",
\" .GG.... \",
\" .GG. ....... \",
\" .GG. . \",
\" .GG. .. \",
\" .GG. .G. ....... \",
\" .GG...GG. \",
\" .GGGGGGGG. \",
\" .GGGGGGGGG. ....... \",
\" .GGGGGGG. \",
\" ....GG. \",
\" .G. ....... \",
\" .. \",
\" . \",
\" ....... \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The Step Over icon.")
(defvar idlwave-toolbar-step-into-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"G c #0000BBBB0000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" ..... ....... \",
\" .GGGG. \",
\" .GGGGG. \",
\" .GG.... ........ \",
\" .GG. \",
\" .GG. . \",
\" .GG. .. \",
\" .GG. .G. \",
\" .GG...GG. ....... \",
\" .GGGGGGGG. \",
\" .GGGGGGGGG. \",
\" .GGGGGGG. ....... \",
\" ....GG. \",
\" .G. \",
\" .. ....... \",
\" . \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The Step Into icon.")
(defvar idlwave-toolbar-step-out-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\"G c #0000BBBB0000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" . \",
\" .. ........ \",
\" .G. \",
\" ....GG. \",
\" .GGGGGGG. ........ \",
\" .GGGGGGGGG. \",
\" .GGGGGGGG. \",
\" .GG...GG. ........ \",
\" .GG. .G. \",
\" .GG. .. \",
\" .GG. . \",
\" .GG. \",
\" .GG....... ....... \",
\" .GGGGGGGG. \",
\" .GGGGGGG. \",
\" ........ ....... \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The Step up icon.")
(defvar idlwave-toolbar-eval-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 2 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". c #000000000000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" .... \",
\" .. .. ...... \",
\" .. .. ...... \",
\" .. .. \",
\" .. .. ...... \",
\" .. .. ...... \",
\" .... \",
\" .. \",
\" .. \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \",
\" \"};")
"The Evaluate icon.")
(defvar idlwave-toolbar-stack-up-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 5 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". s FgColor c #000000000000\",
\"_ c #FFFFFFFFFFFF\",
\"G c #0000BBBB0000\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" ........ . \",
\" .______. ... \",
\" .______. ..... \",
\" .______. ....... \",
\" .______. ... \",
\" .______. ... \",
\" ........ ... \",
\" .GGGGGG. ... \",
\" .GGGGGG. ... \",
\" .GGGGGG. \",
\" .GGGGGG. \",
\" .GGGGGG. \",
\" ........ \",
\" .RRRRRR. \",
\" .RRRRRR. \",
\" .RRRRRR. \",
\" .RRRRRR. \",
\" .RRRRRR. \",
\" ........ \",
\" \",
\" \",
\" \",
\" \"};")
"The Stack Up icon.")
(defvar idlwave-toolbar-stack-down-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 5 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\". s FgColor c #000000000000\",
\"_ c #FFFFFFFFFFFF\",
\"G c #0000BBBB0000\",
\"R c #FFFF00000000\",
\" \",
\" \",
\" \",
\" \",
\" \",
\" ........ \",
\" .______. \",
\" .______. \",
\" .______. \",
\" .______. \",
\" .______. \",
\" ........ \",
\" .GGGGGG. \",
\" .GGGGGG. \",
\" .GGGGGG. \",
\" .GGGGGG. ... \",
\" .GGGGGG. ... \",
\" ........ ... \",
\" .RRRRRR. ... \",
\" .RRRRRR. ... \",
\" .RRRRRR. ....... \",
\" .RRRRRR. ..... \",
\" .RRRRRR. ... \",
\" ........ . \",
\" \",
\" \",
\" \",
\" \"};")
"The Stack Down icon.")
(defvar idlwave-toolbar-reset-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 3 1\",
\" c None s backgroundToolBarColor\",
2000-01-03 14:23:13 +00:00
\"G c #0000BBBB0000\",
\". c #000000000000\",
\" \",
\" \",
\" \",
\" . \",
\" .G. . \",
\" .GGG.. .G. \",
\" .GGGGG..GG. \",
\" ..GGGGGGGG. \",
\" ..GGGGGG. \",
\" ..GGGGG. \",
\" .GGGGGG. \",
\" .G...... \",
\" \",
\" ..... \",
\" ......... \",
\" ......... \",
\" ......... \",
\" . ..... . \",
\" . . \",
\" . . \",
\" . . \",
\" . . \",
\" . . \",
\" .. .. \",
\" ....... \",
\" ..... \",
\" \",
\" \"};")
"The Reset icon.")
(defvar idlwave-toolbar-electric-debug-icon
(idlwave-toolbar-make-button
"/* XPM */
static char * file[] = {
\"28 28 8 1\",
\" c None s backgroundToolBarColor\",
\". c #CFC854\",
\"+ c #EEDB0E\",
\"@ c #D2C739\",
\"# c #A39C54\",
\"$ c #CDC020\",
\"% c #020202\",
\"& c #D60E36\",
\" \",
\" \",
\" .. \",
\" +++++@ \",
\" ++++++ \",
\" +++++@ \",
\" +++++ \",
\" #++++@ \",
\" $+++@ %% %% \",
\" ++++++$ % % \",
\" #+++++$ % % \",
\" #++$# %%% \",
\" #+++ %%%%%%% \",
\" .++ %%%%%%%%%%% \",
\" ++$$ %%%%%%%%%%% \",
\" .+@# &&%%%%%%%&& \",
\" .++++# &&&&&%%%&&&&& \",
\" +++++$ &&%%&&&&&%%&& \",
\" $+++$ &&%%&&&&&%%&& \",
\" $++@ &&&&&&%&&&&&& \",
\" $+@ &&&&&&%&&&&&& \",
\" @+ &&%%&&&&&%%&& \",
\" ++. &%%&&%&&%%& \",
\" +. &&&&%%%&&&& \",
\" .+ &&%%%%%&& \",
\" ++ %%%%%%% \",
\" . %%% \",
\" \"};")
"The electric debug icon.")
2000-01-03 14:23:13 +00:00
(defvar idlwave-toolbar
'(
[idlwave-toolbar-compile-icon
idlwave-shell-save-and-compile
t
"Save and Compile this file (or recompile last)"]
[idlwave-toolbar-next-error-icon
idlwave-shell-goto-next-error
t
"Goto Next Error"]
[idlwave-toolbar-stop-at-icon
idlwave-shell-break-here
Derive from prog-mode, use derived-mode-p, and fix up various minor style issues in lisp/progmodes. * lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init) (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable -> make-local-hook. * lisp/progmodes/sh-script.el (sh-require-final-newline): Remove. (sh-set-shell): Don't set require-final-newline since it's already done by prog-mode. * lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column since we never set it. * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation): Use read-string and standard prompt. * lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration. * lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl. (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table. (meta-common-mode-map): Rename from meta-mode-map. Remove C-m binding, which is a user preference, not mode specific. (meta-common-mode): New major mode; replace meta-common-initialization. * lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing around with font-lock. * lisp/progmodes/etags.el (select-tags-table-mode): Derive from special-mode. * lisp/progmodes/octave-mod.el (octave-mode): * lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode) (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode) (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode): Let define-derived-mode do its job. * lisp/progmodes/cpp.el (cpp-edit-mode-map): Move initialization into declaration. (cpp-edit-mode): Use define-derived-mode. (cpp-edit-load): Use derived-mode-p. * lisp/progmodes/mixal-mode.el (mixal-mode): * lisp/progmodes/f90.el (f90-mode): * lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting require-final-newline since prog-mode does it already. * lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string. * lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup. * lisp/progmodes/antlr-mode.el: Require cc-mode upfront. (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in the declaration. (antlr-directory-dependencies, antlr-show-makefile-rules): Use derived-mode-p. (antlr-language-option): Don't assume point-min==1. (antlr-mode): Use define-derived-mode. * lisp/progmodes/ada-mode.el: Use derived-mode-p. (ada-mode): Use define-derived-mode. Use hack-local-variables-hook. * lisp/progmodes/vhdl-mode.el (vhdl-mode): * lisp/progmodes/verilog-mode.el (verilog-mode): * lisp/progmodes/vera-mode.el (vera-mode): * lisp/progmodes/sql.el (sql-mode): * lisp/progmodes/scheme.el (scheme-mode): * lisp/progmodes/perl-mode.el (perl-mode): * lisp/progmodes/octave-inf.el (inferior-octave-mode): * lisp/progmodes/autoconf.el (autoconf-mode): * lisp/progmodes/m4-mode.el (m4-mode): * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): * lisp/progmodes/idlwave.el (idlwave-mode): * lisp/progmodes/icon.el (icon-mode): * lisp/progmodes/idlw-help.el (idlwave-help-mode): * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode) (ebrowse-member-mode, ebrowse-electric-position-mode): Use define-derived-mode. * lisp/progmodes/xscheme.el (xscheme-start) (local-set-scheme-interaction-buffer, scheme-interaction-mode): * lisp/progmodes/which-func.el (which-function): * lisp/progmodes/vhdl-mode.el (vhdl-set-style): * lisp/progmodes/verilog-mode.el (verilog-set-compile-command) (verilog-modify-compile-command, verilog-error-regexp-add-xemacs) (verilog-set-define, verilog-auto-reeval-locals): * lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode): * lisp/progmodes/simula.el (simula-mode): * lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): * lisp/progmodes/python.el (python-check, python-mode): * lisp/progmodes/prolog.el (prolog-mode-variables): * lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions): * lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame): * lisp/progmodes/delphi.el (delphi-mode): * lisp/progmodes/cc-styles.el (c-setup-paragraph-variables): * lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init) (c-font-lock-init): Move make-local-variable to their setq. * lisp/progmodes/xscheme.el (exit-scheme-interaction-mode) (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode) (xscheme-debugger-mode-p, xscheme-send-string-1): * lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word) (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/ps-mode.el (ps-run-running): * lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint): * lisp/progmodes/js.el (js--get-all-known-symbols): * lisp/progmodes/inf-lisp.el (inferior-lisp-proc): * lisp/progmodes/idlwave.el (idlwave-beginning-of-statement) (idlwave-template, idlwave-update-buffer-routine-info) (idlwave-update-current-buffer-info) (idlwave-get-routine-info-from-buffers, idlwave-choose) (idlwave-scan-class-info, idlwave-fix-keywords) (idlwave-list-buffer-load-path-shadows): * lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add) (idlwave-toolbar-remove): * lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action) (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off) (idlwave-shell-menu-def): * lisp/progmodes/idlw-complete-structtag.el (idlwave-prepare-structure-tag-completion): * lisp/progmodes/gud.el (gud-set-buffer): * lisp/progmodes/f90.el (f90-backslash-not-special): * lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 20:00:25 +00:00
(derived-mode-p 'idlwave-mode)
2000-01-03 14:23:13 +00:00
"Set Breakpoint at selected position"]
[idlwave-toolbar-clear-at-icon
idlwave-shell-clear-current-bp
t
"Clear Breakpoint at selected position"]
[idlwave-toolbar-clear-all-icon
idlwave-shell-clear-all-bp
t
"Clear all Breakpoints"]
[idlwave-toolbar-stop-beginning-icon
idlwave-shell-break-this-module
Derive from prog-mode, use derived-mode-p, and fix up various minor style issues in lisp/progmodes. * lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init) (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable -> make-local-hook. * lisp/progmodes/sh-script.el (sh-require-final-newline): Remove. (sh-set-shell): Don't set require-final-newline since it's already done by prog-mode. * lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column since we never set it. * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation): Use read-string and standard prompt. * lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration. * lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl. (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table. (meta-common-mode-map): Rename from meta-mode-map. Remove C-m binding, which is a user preference, not mode specific. (meta-common-mode): New major mode; replace meta-common-initialization. * lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing around with font-lock. * lisp/progmodes/etags.el (select-tags-table-mode): Derive from special-mode. * lisp/progmodes/octave-mod.el (octave-mode): * lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode) (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode) (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode): Let define-derived-mode do its job. * lisp/progmodes/cpp.el (cpp-edit-mode-map): Move initialization into declaration. (cpp-edit-mode): Use define-derived-mode. (cpp-edit-load): Use derived-mode-p. * lisp/progmodes/mixal-mode.el (mixal-mode): * lisp/progmodes/f90.el (f90-mode): * lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting require-final-newline since prog-mode does it already. * lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string. * lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup. * lisp/progmodes/antlr-mode.el: Require cc-mode upfront. (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in the declaration. (antlr-directory-dependencies, antlr-show-makefile-rules): Use derived-mode-p. (antlr-language-option): Don't assume point-min==1. (antlr-mode): Use define-derived-mode. * lisp/progmodes/ada-mode.el: Use derived-mode-p. (ada-mode): Use define-derived-mode. Use hack-local-variables-hook. * lisp/progmodes/vhdl-mode.el (vhdl-mode): * lisp/progmodes/verilog-mode.el (verilog-mode): * lisp/progmodes/vera-mode.el (vera-mode): * lisp/progmodes/sql.el (sql-mode): * lisp/progmodes/scheme.el (scheme-mode): * lisp/progmodes/perl-mode.el (perl-mode): * lisp/progmodes/octave-inf.el (inferior-octave-mode): * lisp/progmodes/autoconf.el (autoconf-mode): * lisp/progmodes/m4-mode.el (m4-mode): * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): * lisp/progmodes/idlwave.el (idlwave-mode): * lisp/progmodes/icon.el (icon-mode): * lisp/progmodes/idlw-help.el (idlwave-help-mode): * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode) (ebrowse-member-mode, ebrowse-electric-position-mode): Use define-derived-mode. * lisp/progmodes/xscheme.el (xscheme-start) (local-set-scheme-interaction-buffer, scheme-interaction-mode): * lisp/progmodes/which-func.el (which-function): * lisp/progmodes/vhdl-mode.el (vhdl-set-style): * lisp/progmodes/verilog-mode.el (verilog-set-compile-command) (verilog-modify-compile-command, verilog-error-regexp-add-xemacs) (verilog-set-define, verilog-auto-reeval-locals): * lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode): * lisp/progmodes/simula.el (simula-mode): * lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): * lisp/progmodes/python.el (python-check, python-mode): * lisp/progmodes/prolog.el (prolog-mode-variables): * lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions): * lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame): * lisp/progmodes/delphi.el (delphi-mode): * lisp/progmodes/cc-styles.el (c-setup-paragraph-variables): * lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init) (c-font-lock-init): Move make-local-variable to their setq. * lisp/progmodes/xscheme.el (exit-scheme-interaction-mode) (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode) (xscheme-debugger-mode-p, xscheme-send-string-1): * lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word) (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/ps-mode.el (ps-run-running): * lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint): * lisp/progmodes/js.el (js--get-all-known-symbols): * lisp/progmodes/inf-lisp.el (inferior-lisp-proc): * lisp/progmodes/idlwave.el (idlwave-beginning-of-statement) (idlwave-template, idlwave-update-buffer-routine-info) (idlwave-update-current-buffer-info) (idlwave-get-routine-info-from-buffers, idlwave-choose) (idlwave-scan-class-info, idlwave-fix-keywords) (idlwave-list-buffer-load-path-shadows): * lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add) (idlwave-toolbar-remove): * lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action) (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off) (idlwave-shell-menu-def): * lisp/progmodes/idlw-complete-structtag.el (idlwave-prepare-structure-tag-completion): * lisp/progmodes/gud.el (gud-set-buffer): * lisp/progmodes/f90.el (f90-backslash-not-special): * lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 20:00:25 +00:00
(derived-mode-p 'idlwave-mode)
"Stop at beginning of enclosing Routine"]
[idlwave-toolbar-stop-in-icon
idlwave-shell-break-in
t
"Stop in Routine with name near point"]
2000-01-03 14:23:13 +00:00
[idlwave-toolbar-edit-cmd-icon
idlwave-shell-edit-default-command-line
t
"Edit Default Command Line"]
[idlwave-toolbar-run-icon
idlwave-shell-execute-default-command-line
t
"Reset, then Execute Default Command Line"]
[idlwave-toolbar-cont-icon
idlwave-shell-cont
t
"Continue Current Program"]
[idlwave-toolbar-to-here-icon
idlwave-shell-to-here
Derive from prog-mode, use derived-mode-p, and fix up various minor style issues in lisp/progmodes. * lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init) (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable -> make-local-hook. * lisp/progmodes/sh-script.el (sh-require-final-newline): Remove. (sh-set-shell): Don't set require-final-newline since it's already done by prog-mode. * lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column since we never set it. * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation): Use read-string and standard prompt. * lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration. * lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl. (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table. (meta-common-mode-map): Rename from meta-mode-map. Remove C-m binding, which is a user preference, not mode specific. (meta-common-mode): New major mode; replace meta-common-initialization. * lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing around with font-lock. * lisp/progmodes/etags.el (select-tags-table-mode): Derive from special-mode. * lisp/progmodes/octave-mod.el (octave-mode): * lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode) (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode) (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode): Let define-derived-mode do its job. * lisp/progmodes/cpp.el (cpp-edit-mode-map): Move initialization into declaration. (cpp-edit-mode): Use define-derived-mode. (cpp-edit-load): Use derived-mode-p. * lisp/progmodes/mixal-mode.el (mixal-mode): * lisp/progmodes/f90.el (f90-mode): * lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting require-final-newline since prog-mode does it already. * lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string. * lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup. * lisp/progmodes/antlr-mode.el: Require cc-mode upfront. (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in the declaration. (antlr-directory-dependencies, antlr-show-makefile-rules): Use derived-mode-p. (antlr-language-option): Don't assume point-min==1. (antlr-mode): Use define-derived-mode. * lisp/progmodes/ada-mode.el: Use derived-mode-p. (ada-mode): Use define-derived-mode. Use hack-local-variables-hook. * lisp/progmodes/vhdl-mode.el (vhdl-mode): * lisp/progmodes/verilog-mode.el (verilog-mode): * lisp/progmodes/vera-mode.el (vera-mode): * lisp/progmodes/sql.el (sql-mode): * lisp/progmodes/scheme.el (scheme-mode): * lisp/progmodes/perl-mode.el (perl-mode): * lisp/progmodes/octave-inf.el (inferior-octave-mode): * lisp/progmodes/autoconf.el (autoconf-mode): * lisp/progmodes/m4-mode.el (m4-mode): * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): * lisp/progmodes/idlwave.el (idlwave-mode): * lisp/progmodes/icon.el (icon-mode): * lisp/progmodes/idlw-help.el (idlwave-help-mode): * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode) (ebrowse-member-mode, ebrowse-electric-position-mode): Use define-derived-mode. * lisp/progmodes/xscheme.el (xscheme-start) (local-set-scheme-interaction-buffer, scheme-interaction-mode): * lisp/progmodes/which-func.el (which-function): * lisp/progmodes/vhdl-mode.el (vhdl-set-style): * lisp/progmodes/verilog-mode.el (verilog-set-compile-command) (verilog-modify-compile-command, verilog-error-regexp-add-xemacs) (verilog-set-define, verilog-auto-reeval-locals): * lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode): * lisp/progmodes/simula.el (simula-mode): * lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): * lisp/progmodes/python.el (python-check, python-mode): * lisp/progmodes/prolog.el (prolog-mode-variables): * lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions): * lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame): * lisp/progmodes/delphi.el (delphi-mode): * lisp/progmodes/cc-styles.el (c-setup-paragraph-variables): * lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init) (c-font-lock-init): Move make-local-variable to their setq. * lisp/progmodes/xscheme.el (exit-scheme-interaction-mode) (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode) (xscheme-debugger-mode-p, xscheme-send-string-1): * lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word) (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/ps-mode.el (ps-run-running): * lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint): * lisp/progmodes/js.el (js--get-all-known-symbols): * lisp/progmodes/inf-lisp.el (inferior-lisp-proc): * lisp/progmodes/idlwave.el (idlwave-beginning-of-statement) (idlwave-template, idlwave-update-buffer-routine-info) (idlwave-update-current-buffer-info) (idlwave-get-routine-info-from-buffers, idlwave-choose) (idlwave-scan-class-info, idlwave-fix-keywords) (idlwave-list-buffer-load-path-shadows): * lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add) (idlwave-toolbar-remove): * lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action) (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off) (idlwave-shell-menu-def): * lisp/progmodes/idlw-complete-structtag.el (idlwave-prepare-structure-tag-completion): * lisp/progmodes/gud.el (gud-set-buffer): * lisp/progmodes/f90.el (f90-backslash-not-special): * lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 20:00:25 +00:00
(derived-mode-p 'idlwave-mode)
2000-01-03 14:23:13 +00:00
"Continue to Here (cursor position)"]
[idlwave-toolbar-step-over-icon
idlwave-shell-stepover
t
"Step Over (aka next)"]
[idlwave-toolbar-step-into-icon
idlwave-shell-step
t
"Step Into (aka step)"]
[idlwave-toolbar-step-out-icon
idlwave-shell-out
t
"Step Out (of subroutine)"]
[idlwave-toolbar-eval-icon
idlwave-shell-print
t
"Print Expression at or before Point"]
[idlwave-toolbar-stack-up-icon
idlwave-shell-stack-up
t
"Stack Up (towards \"cooler\" - less recently visited - frames)"]
[idlwave-toolbar-stack-down-icon
idlwave-shell-stack-down
t
"Stack Down (towards \"warmer\" - more recently visited - frames)"]
[idlwave-toolbar-reset-icon
idlwave-shell-reset
t
"Reset IDL (RETALL & CLOSE,/ALL and more)"]
[idlwave-toolbar-electric-debug-icon
idlwave-shell-electric-debug-mode
Derive from prog-mode, use derived-mode-p, and fix up various minor style issues in lisp/progmodes. * lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init) (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable -> make-local-hook. * lisp/progmodes/sh-script.el (sh-require-final-newline): Remove. (sh-set-shell): Don't set require-final-newline since it's already done by prog-mode. * lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column since we never set it. * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation): Use read-string and standard prompt. * lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration. * lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl. (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table. (meta-common-mode-map): Rename from meta-mode-map. Remove C-m binding, which is a user preference, not mode specific. (meta-common-mode): New major mode; replace meta-common-initialization. * lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing around with font-lock. * lisp/progmodes/etags.el (select-tags-table-mode): Derive from special-mode. * lisp/progmodes/octave-mod.el (octave-mode): * lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode) (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode) (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode): Let define-derived-mode do its job. * lisp/progmodes/cpp.el (cpp-edit-mode-map): Move initialization into declaration. (cpp-edit-mode): Use define-derived-mode. (cpp-edit-load): Use derived-mode-p. * lisp/progmodes/mixal-mode.el (mixal-mode): * lisp/progmodes/f90.el (f90-mode): * lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting require-final-newline since prog-mode does it already. * lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string. * lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup. * lisp/progmodes/antlr-mode.el: Require cc-mode upfront. (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in the declaration. (antlr-directory-dependencies, antlr-show-makefile-rules): Use derived-mode-p. (antlr-language-option): Don't assume point-min==1. (antlr-mode): Use define-derived-mode. * lisp/progmodes/ada-mode.el: Use derived-mode-p. (ada-mode): Use define-derived-mode. Use hack-local-variables-hook. * lisp/progmodes/vhdl-mode.el (vhdl-mode): * lisp/progmodes/verilog-mode.el (verilog-mode): * lisp/progmodes/vera-mode.el (vera-mode): * lisp/progmodes/sql.el (sql-mode): * lisp/progmodes/scheme.el (scheme-mode): * lisp/progmodes/perl-mode.el (perl-mode): * lisp/progmodes/octave-inf.el (inferior-octave-mode): * lisp/progmodes/autoconf.el (autoconf-mode): * lisp/progmodes/m4-mode.el (m4-mode): * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): * lisp/progmodes/idlwave.el (idlwave-mode): * lisp/progmodes/icon.el (icon-mode): * lisp/progmodes/idlw-help.el (idlwave-help-mode): * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode) (ebrowse-member-mode, ebrowse-electric-position-mode): Use define-derived-mode. * lisp/progmodes/xscheme.el (xscheme-start) (local-set-scheme-interaction-buffer, scheme-interaction-mode): * lisp/progmodes/which-func.el (which-function): * lisp/progmodes/vhdl-mode.el (vhdl-set-style): * lisp/progmodes/verilog-mode.el (verilog-set-compile-command) (verilog-modify-compile-command, verilog-error-regexp-add-xemacs) (verilog-set-define, verilog-auto-reeval-locals): * lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode): * lisp/progmodes/simula.el (simula-mode): * lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): * lisp/progmodes/python.el (python-check, python-mode): * lisp/progmodes/prolog.el (prolog-mode-variables): * lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions): * lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame): * lisp/progmodes/delphi.el (delphi-mode): * lisp/progmodes/cc-styles.el (c-setup-paragraph-variables): * lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init) (c-font-lock-init): Move make-local-variable to their setq. * lisp/progmodes/xscheme.el (exit-scheme-interaction-mode) (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode) (xscheme-debugger-mode-p, xscheme-send-string-1): * lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word) (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/ps-mode.el (ps-run-running): * lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint): * lisp/progmodes/js.el (js--get-all-known-symbols): * lisp/progmodes/inf-lisp.el (inferior-lisp-proc): * lisp/progmodes/idlwave.el (idlwave-beginning-of-statement) (idlwave-template, idlwave-update-buffer-routine-info) (idlwave-update-current-buffer-info) (idlwave-get-routine-info-from-buffers, idlwave-choose) (idlwave-scan-class-info, idlwave-fix-keywords) (idlwave-list-buffer-load-path-shadows): * lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add) (idlwave-toolbar-remove): * lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action) (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off) (idlwave-shell-menu-def): * lisp/progmodes/idlw-complete-structtag.el (idlwave-prepare-structure-tag-completion): * lisp/progmodes/gud.el (gud-set-buffer): * lisp/progmodes/f90.el (f90-backslash-not-special): * lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 20:00:25 +00:00
(derived-mode-p 'idlwave-mode)
"Toggle Electric Debug Mode"]
2000-01-03 14:23:13 +00:00
))
;; When the shell exits, arrange to remove the special toolbar everywhere.
2000-01-03 14:23:13 +00:00
(add-hook 'idlwave-shell-cleanup-hook
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
#'idlwave-toolbar-remove-everywhere)
2000-01-03 14:23:13 +00:00
);; End can define toolbar
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
(define-obsolete-function-alias 'idlwave-toolbar-add #'ignore "28.1")
(define-obsolete-function-alias 'idlwave-toolbar-remove #'ignore "28.1")
2000-01-03 14:23:13 +00:00
(defvar idlwave-shell-mode-map)
(defvar idlwave-mode-map)
2000-01-03 14:23:13 +00:00
(defvar idlwave-toolbar-visible nil)
(defun idlwave-toolbar-add-everywhere ()
"Add the toolbar in all appropriate buffers."
(when (boundp 'idlwave-toolbar-is-possible)
;; Then add it to all existing buffers
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
;; For Emacs, add the key definitions to the mode maps
(mapc (lambda (x)
(let* ((icon (aref x 0))
(func (aref x 1))
(show (aref x 2))
(help (aref x 3))
(key (vector 'tool-bar func))
(def (list 'menu-item
""
func
:image (symbol-value icon)
:visible show
:help help)))
(define-key idlwave-mode-map key def)
(define-key idlwave-shell-mode-map key def)))
(reverse idlwave-toolbar))
(setq idlwave-toolbar-visible t)))
2000-01-03 14:23:13 +00:00
(defun idlwave-toolbar-remove-everywhere ()
"Remove the toolbar in all appropriate buffers."
;; First make sure new buffers won't get the toolbar
(when idlwave-toolbar-is-possible
;; Then remove it in all existing buffers.
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
;; For Emacs, remove the key definitions from the mode maps
(mapc (lambda (x)
(let* (;;(icon (aref x 0))
(func (aref x 1))
;;(show (aref x 2))
;;(help (aref x 3))
(key (vector 'tool-bar func)))
(define-key idlwave-mode-map key nil)
(define-key idlwave-shell-mode-map key nil)))
idlwave-toolbar)
(setq idlwave-toolbar-visible nil)))
(defun idlwave-toolbar-toggle (&optional force-on)
2000-01-03 14:23:13 +00:00
(interactive)
(if idlwave-toolbar-visible
(or force-on (idlwave-toolbar-remove-everywhere))
(idlwave-toolbar-add-everywhere))
* list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (<toplevel>): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit.
2021-03-24 21:11:05 +00:00
;; On Emacs, redraw the frame to make sure the Toolbar is updated.
(redraw-frame))
2000-01-03 14:23:13 +00:00
(provide 'idlw-toolbar)
(provide 'idlwave-toolbar)
2000-01-03 14:23:13 +00:00
;;; idlw-toolbar.el ends here