Module: Dylan-User Synopsis: The Deuce editor, for the emulator Author: Scott McKay Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND // Export module for Deuce external clients define module deuce-commands // Basic commands create editor-help, editor-key-bindings, self-insert, insert-tab, quoted-insert, numeric-argument, numeric-negative, universal-argument, toggle-overwrite, cancel-command, scroll-forward, scroll-forward-ext, scroll-backward, scroll-backward-ext, start-of-page, end-of-page, force-redisplay, force-recenter, show-position, forward-character, backward-character, forward-character-ext, backward-character-ext, forward-word, backward-word, forward-word-ext, backward-word-ext, forward-list, backward-list, forward-expression, backward-expression, next-line, previous-line, next-line-ext, previous-line-ext, start-of-line, end-of-line, start-of-line-ext, end-of-line-ext, start-of-buffer, end-of-buffer, start-of-section, end-of-section, down-list, up-list, down-expression, up-expression, goto-character, goto-line, delete-character, rubout-character, delete-word, rubout-word, delete-list, rubout-list, delete-expression, rubout-expression, cut-region, delete-region, copy-region, paste, yank, yank-next, insert-newline, indent-newline, open-line, split-line, kill-line, join-lines, transpose-characters, transpose-words, transpose-expressions, transpose-lines, transpose-lists, upcase-word, downcase-word, capitalize-word, upcase-region, downcase-region, change-region-font, change-region-weight, change-region-slant, find-string, find-next-string, find-previous-string, replace-string, query-replace-string, show-matching-lines, show-non-matching-lines, hack-matching-lines, set-mark, exchange-point-pdl, swap-point-and-mark, mark-buffer, mark-to-beginning, mark-to-end, mark-next-word, mark-word, mark-next-atom, mark-atom, mark-next-expression, save-point-in-register, restore-point-from-register, save-string-in-register, insert-string-from-register, undo-command, undo-all-commands, redo-command, redo-all-commands, find-file, new-file, insert-file, save-file, save-file-as, save-all-files, print-file, revert-file, close-file, sectionize-file, choose-buffer, switch-buffers, new-buffer, mark-unmodified, toggle-read-only, choose-configuration, edit-definition, start-of-definition, end-of-definition, indent-line, indent-expression, indent-region, indent-rigidly, unindent-rigidly, insert-comment, comment-region, delete-whitespace, start-keyboard-macro, finish-keyboard-macro, execute-keyboard-macro, dylan-insert-block-end; // Language and environment commands create complete-name, dynamic-complete-name, show-value, describe-object, browse-object, browse-class, browse-function, show-arglist, show-documentation, evaluate-definition, evaluate-region, evaluate-buffer, macroexpand-region, parse-project, compile-project, clean-compile-project, link-project, build-project, clean-build-project, compile-file, load-file; // Browsing buffer commands create edit-home-definition, edit-class-subclasses, edit-class-superclasses, edit-class-methods, edit-generic-function-methods, edit-callers, edit-callees; // Source version control commands create vc-claim, vc-check-out, vc-check-in, vc-abandon, vc-merge, vc-diff, vc-report, vc-add, vc-remove; // Mail commands create send-mail, mail-send, mail-send-and-exit, mail-signature; end module deuce-commands; // Export module for Deuce Dylan clients define module deuce use deuce-commands, export: all; create , , , , line-next, line-previous, line-section, copy-line, line-length, line-contents, line-node, line-empty?; create , make-bp, copy-bp, bp-line, bp-index, bp-buffer, move-bp!, kill-bp!, bp-less?, bp-greater?, bp-character, bp-character-setter, bp-character-before, bp-character-after, bp-looking-at?, bp-looking-at-word?, bp-looking-at-atom?, bp-node; create , make-interval, copy-interval, interval-start-bp, interval-end-bp, interval-buffer, do-lines, do-characters, count-lines, count-characters, bp-within-interval?; create , , , node-next, node-previous, node-parent, node-children, node-buffer, node-section, node-definition-signature, node-definition-name, node-definition-type, make-section-node, make-empty-section-node; create
, , section-start-line, section-end-line, section-definition-signature, section-definition-name, section-definition-type, section-container, section-home-buffer, section-node, add-line!, remove-line!, make-empty-section; create , container-pathname, container-sections; create , $word-alphabetic, $word-delimiter, $atom-alphabetic, $atom-delimiter, $list-alphabetic, $list-delimiter, $list-escape, $list-single-quote, $list-double-quote, $list-open, $list-close, $default-word-syntax, $default-atom-syntax, $default-list-syntax, character-syntax, word-syntax, atom-syntax, list-syntax; create , command-table-name, add-command!, remove-command!, find-command; create , $standard-command-set, command-set-name, standard-command-table, control-X-command-table, control-C-command-table, escape-command-table; create , , , , word-syntax-table, atom-syntax-table, list-syntax-table; create , , , , , *buffer*, buffer-name, buffer-pathname, buffer-default-pathname, buffer-start-node, buffer-end-node, line-next-in-buffer, line-previous-in-buffer, revert-buffer, save-buffer, save-buffer-as, kill-buffer, gc-buffer, file-buffer?, saves-like-file-buffer?, composite-buffer?, special-purpose-buffer?, buffer-modified?, add-node!, remove-node!, do-save-all-files; create ; create , do-history-elements, yank-from-history, yank-next-from-history, history-push, history-pop, history-top, history-top-setter, add-to-kill-ring, yank-from-kill-ring; create , window-buffer, window-point, window-mark, window-temporary-mark?, select-buffer, select-buffer-in-appropriate-window; create , editor-frames, editor-windows, editor-buffers, find-buffer, find-buffer-from-pathname; create , *editor-frame*, frame-editor, frame-buffer, frame-window, frame-command-set, exit-editor; create $display-none, $display-region, $display-point, $display-line, $display-text, $display-blt, $display-all, queue-redisplay, queue-region-redisplay, redisplay-window, redisplay-all-windows, redisplay-section, recenter-window, bp->position, position->bp, point, move-point!, mark, move-mark!, clear-mark!, swap-point-and-mark!; create increment-bp!, decrement-bp!, start-of-line?, line-start, end-of-line?, line-end, move-over-characters, move-over-words, move-over-atoms, move-over-lists, move-over-expressions, move-up-or-down-lists, move-up-or-down-expressions, move-over-lines, forward-over, forward-over!, backward-over, backward-over!, forward-until, backward-until, definition-interval, relevant-function-interval, atom-under-bp, select-atom-under-bp, char-index->bp, bp->char-index, line-index->line, line->line-index, line-index->bp, bp->line-index; create insert!, insert-moving!, delete!, kill!; create search; create , presentation-object, presentation-type, presentation-at-position, handle-presentation-event, cursor-at-position; create $menu-gesture, $move-gesture, $copy-gesture, $edit-gesture, gesture-matches?; end module deuce; // Implementation and extension module define module deuce-internals use functional-dylan, exclude: { position, position-if, count, \without-bounds-checks }; use threads; use table-extensions; use plists; use byte-vector; use streams-internals, rename: { => streams/, read-character => streams/read-character }; use date; use file-system, export: { }; use locators; //--- Use this instead of Simple-Print for better 'print-object' behavior use standard-io; use print; use format; use format-out; use deuce, export: all; export \inc!, \dec!, \max!, \min!, \swap!, \push!, \pop!, \with-thing-locked, // to squelch a compiler warning \with-node-locked, \with-buffer-locked, \with-editor-locked, \with-editor-state-bound; export true, false, gethash, gethash-setter, remhash, position, position-if, count, insert-at!, remove-at!, get-file-property, tick; export char-equal?, char-less?, char-greater?, string-equal?, string-less?, string-greater?, alpha-char?, digit-char?, alphanumeric-char?, upper-case?, lower-case?, graphic-char?, standard-char?, whitespace-char?, any-whitespace-char?, string-trim, trim-whitespace, string-capitalize, string-capitalize!; export , , , text-line?, diagram-line?, structural-diagram-line?, line-next-setter, line-previous-setter, line-section-setter, line-length-setter, line-contents-setter, line-style-changes, line-style-changes-setter, line-bps, line-bps-setter, line-modification-tick, line-modification-tick-setter, line-properties, line-properties-setter, line-contents-properties, line-contents-properties-setter, note-line-changed, line-read-only?, line-read-only?-setter, line-for-display-only?, dump-line, gc-line; export , style-change-index, style-change-index-setter, style-change-font, style-change-font-setter, style-change-color, style-change-color-setter; export , , , , , , simple-bp?, moving-bp?; export , , bp-line-setter, bp-index-setter, bp-buffer-setter, interval-read-only?, interval-read-only?-setter, interval-start-bp-setter, interval-end-bp-setter; export , , , node-next-setter, node-previous-setter, node-parent-setter, node-children-setter, node-buffer-setter, node-section-setter, node-lock, note-node-changed; export , , , section-start-line-setter, section-end-line-setter, section-nodes, section-nodes-setter, section-modification-tick, section-modification-tick-setter, section-sectionization-tick, section-sectionization-tick-setter, section-compilation-tick, section-compilation-tick-setter, section-defining-line, section-lock, note-section-changed, note-section-compiled, resectionize-section; export , , , do-find-file, maybe-save-buffer, find-source-container, source-container-class, container-pathname-setter, container-sections-setter, container-has-hard-sections?, container-modified?, note-container-changed, container-read-only?, container-home-buffer, container-buffers, container-buffers-setter, container-undo-history, container-lock, container-properties, container-properties-setter, read-container-contents, read-buffer-contents-from-stream, read-section-contents-from-stream, sectionize-container, add-section!, remove-section!; export copy-syntax-table, copy-syntax-table-into!, character-syntax-setter; export , copy-command-table, copy-command-table-into!, add-commands!, remove-commands!, $control-key, $meta-key, $super-key, $shift-key, $left-button, $middle-button, $right-button, $modifier-key-names; export , copy-command-set, copy-command-set-into!, standard-command-table-setter, control-X-command-table-setter, control-C-command-table-setter, escape-command-table-setter; export , , *major-modes*, *minor-modes*, *file-type->major-mode*, *keyword->major-mode*, initialize-major-mode, word-syntax-table-setter, atom-syntax-table-setter, list-syntax-table-setter, mode-name, mode-command-set, mode-command-set-setter, major-mode?, find-mode, find-mode-from-keyword, find-mode-from-file-type, find-mode-from-pathname, enter-mode, exit-mode, mode-initial-minor-modes, execute-command, execute-command-in-frame, source-file-type, binary-file-type, do-sectionize-buffer, do-sectionize-container, do-resectionize-section, do-note-line-changed, do-definition-interval, do-relevant-function-interval, do-atom-under-bp, do-move-over-expressions, do-move-up-or-down-expressions, do-insert-comment, do-comment-region, do-indent-line, do-indent-region, do-complete-name, do-complete-dynamically, do-edit-definition, do-describe-object, do-browse-object, do-browse-class, do-browse-function, do-show-arglist, do-show-documentation, definition-browser-parameters, compilation-supported?, do-compile-file, do-load-file, do-compile-to-core, do-macroexpand, do-build-project, , line-breakpoint?, line-breakpoint?-setter, line-breakpoint-icon, buffer-command-menu-items; export , do-source-control-operation; export , , make-mail-buffer, parse-mail-buffer, do-send-mail; export , command-error-window, command-error-format-string, command-error-format-arguments, , , command-error, check-read-only; export , , , , , , buffer-start-node-setter, buffer-end-node-setter, buffer-lock, buffer-major-mode, buffer-major-mode-setter, buffer-minor-modes, buffer-minor-modes-setter, buffer-modification-tick, buffer-modification-tick-setter, buffer-save-tick, buffer-save-tick-setter, buffer-properties, buffer-properties-setter, buffer-contents-properties, buffer-contents-properties-setter, buffer-name-setter, buffer-pathname-setter, buffer-source-container, buffer-source-container-setter, buffer-initial-point, buffer-initial-mark, buffer-initial-line, sectionize-buffer, revert-buffer-if-necessary, buffer-has-hard-sections?, buffer-contains-section?, buffer-modified?-setter, buffer-section-separator-style, note-buffer-changed, buffer-read-only?, buffer-read-only?-setter, buffer-anonymous?, buffer-undo-history, make-empty-buffer, make-initial-buffer, buffer-associated-buffers, buffer-associated-buffers-setter; export , history-length, history-element, history-element-size, merge-history-elements, reset-history; export , reset-undo-history, undo-history-state, , , , , , , , find-change-record, close-change-record, extend-insertion-record, extend-deletion-record, add-change-record, \with-change-recording, *change-record*, undo!, undo-all!, do-undo, redo!, redo-all!, do-redo; export , window-point-setter, window-mark-setter, window-temporary-mark?-setter, window-buffer-setter, window-selected-buffers, window-selected-buffers-setter, window-goal-x-position, window-goal-x-position-setter, window-display-lines, window-n-display-lines, window-max-line-width, window-redisplay-degree, window-redisplay-degree-setter, window-centering-fraction, window-centering-fraction-setter, window-initial-line, window-initial-line-setter, window-line-number, window-line-number-setter, window-total-lines, window-total-lines-setter, window-redisplay-line, window-redisplay-line-setter, window-redisplay-index, window-redisplay-index-setter, window-frame, window-frame-setter, window-line-spacing, window-font, window-font-setter, window-default-font, window-default-font-setter, window-default-bold-font, window-default-bold-font-setter, window-default-italic-font, window-default-italic-font-setter, set-default-font, set-default-font-size, window-color, window-color-setter, push-point-pdl!, pop-point-pdl!, command-enabled?, command-enabled?-setter, window-note-mode-entered, window-note-buffer-changed, note-buffer-changed-everywhere, window-note-buffer-read-only, note-buffer-read-only-everywhere, window-note-buffer-selected, window-note-selection-changed, window-note-search-string, window-note-undo/redo, window-note-policy-changed, window-hide-section-separators?, line-visible-in-window?, line-invisible-in-window?; export window-enabled?, window-occluded?, window-size, window-viewport-size, update-scroll-bar, scroll-position, set-scroll-position, display-message, display-error-message, display-buffer-name, display-buffer-name-everywhere, draw-string, string-size, draw-line, draw-rectangle, draw-image, clear-area, copy-area, cursor-position, set-cursor-position, \with-busy-cursor, do-with-busy-cursor, caret-position, set-caret-position, caret-size, set-caret-size, show-caret, hide-caret, font-metrics, choose-from-menu, choose-from-dialog, information-dialog, warning-dialog, yes-or-no-dialog, yes-no-or-cancel-dialog, open-file-dialog, new-file-dialog, save-buffers-dialog, choose-buffer-dialog, choose-buffers-dialog, new-buffer-dialog, choose-string-dialog, hack-matching-lines-dialog, string-search-dialog, string-replace-dialog, edit-definition-dialog, goto-position-dialog, , configuration-dialog, add-to-clipboard, get-from-clipboard, read-character, read-gesture; export , make-color, color-red, color-green, color-blue, $black, $white, $red, $green, $blue, $cyan, $magenta, $yellow, $default-foreground, $default-background; export , make-font, font-family, font-name, font-weight, font-slant, font-size, font-point-size, font->index, index->font, $default-font, $default-bold-font, $default-italic-font; export standard-images, $potential-breakpoint, $enabled-breakpoint, $disabled-breakpoint, $step-breakpoint, $test-breakpoint, $enabled-tracepoint, $disabled-tracepoint, $profile-point, $current-location, $prompt-arrow, $values-arrow, $warning, $serious-warning, $breakpoint-image-width, $breakpoint-image-height, $prompt-image-width, $prompt-image-height; export , , editor-frames-setter, editor-windows-setter, editor-buffers-setter, editor-source-containers, editor-source-containers-setter, editor-kill-history, editor-policy, editor-policy-setter, editor-lock, editor-search-string, editor-search-string-setter, editor-replace-string, editor-replace-string-setter, editor-reverse-search?, editor-reverse-search?-setter, editor-case-sensitive-search?, editor-case-sensitive-search?-setter, editor-whole-word-search?, editor-whole-word-search?-setter, editor-skip-table, editor-skip-table-setter, editor-reoccurrence-table, editor-reoccurrence-table-setter, \do-associated-windows, \do-associated-buffers; export , , , frame-buffer-setter, frame-window-setter, frame-command-set-setter, frame-command-state, frame-command-state-setter, frame-command, frame-command-setter, frame-command-character, frame-command-character-setter, frame-command-modifiers, frame-command-modifiers-setter, frame-last-command, frame-last-command-setter, frame-last-command-type, frame-last-command-type-setter, frame-numeric-arg, frame-numeric-arg-setter, frame-numeric-arg-state, frame-numeric-arg-state-setter, frame-before-command-hooks, frame-after-command-hooks, frame-dynamic-completion-state, frame-dynamic-completion-state-setter, frame-search-string-found?, frame-search-string-found?-setter, find-next-or-previous-string, replace-next-or-previous-string; export , $emacs-editor-policy, $windows-editor-policy, $default-editor-policy, copy-policy, command-set-policy, command-set-policy-setter, , install-command-set, alt-key-is-meta?, alt-key-is-meta?-setter, initial-click-moves-point?, initial-click-moves-point?-setter, clipboard-policy, clipboard-policy-setter, typing-replaces-selection?, typing-replaces-selection?-setter, unselected-copy-policy, unselected-copy-policy-setter, , next-line-adds-newline?, next-line-adds-newline?-setter, undo-past-save-policy, undo-past-save-policy-setter, confirm-kill-buffer?, confirm-kill-buffer?-setter, new-file-buffer?, new-file-buffer?-setter, marking-policy, marking-policy-setter, , scrolling-moves-point?, scrolling-moves-point?-setter, tab-stop-size, tab-stop-size-setter, default-font, default-font-setter, default-font-size, default-font-size-setter, fixed-frame-buffer?, fixed-frame-buffer?-setter, show-section-separators?, show-section-separators?-setter, show-path-in-title?, show-path-in-title?-setter, wrap-searches?, wrap-searches?-setter, use-isearch?, use-isearch?-setter; export set-centering-fraction, do-redisplay-window, redisplay-window-within-frame, initialize-redisplay-for-buffer, scroll-n-lines, update-display-lines, find-display-line, display-line-line, display-line-line-setter, display-line-tick, display-line-tick-setter, display-line-start, display-line-start-setter, display-line-end, display-line-end-setter, display-line-width, display-line-width-setter, display-line-height, display-line-height-setter, display-line-y, display-line-y-setter, display-line-baseline, display-line-baseline-setter, display-line-mark-start, display-line-mark-start-setter, display-line-mark-end, display-line-mark-end-setter, display-line-mark-x, display-line-mark-x-setter, display-line-mark-width, display-line-mark-width-setter, display-line-mark-tick, display-line-mark-tick-setter, ensure-line-visible, clear-region-marking, display-region-marking, update-display-line-marking, $region-marking-color, display-line, line-size, line-margin, position->index, index->position; export move-forward-or-backward!; export insert-into-line; export delete-within-line, note-multi-line-deletion; export boyer-search, cached-boyer-search, compute-boyer-tables, string-search, string-reverse-search; export frame-isearch-trail, frame-isearch-trail-setter, frame-isearch-direction, frame-isearch-direction-setter, frame-isearch-move-mark?, frame-isearch-move-mark?-setter, frame-isearch-last-string, frame-isearch-last-string-setter, incremental-search-forward, incremental-search-backward, start-incremental-search, continue-incremental-search, finish-incremental-search; export , , , , do-presentation-at-position, do-handle-presentation-event, do-cursor-at-position, blank-area-menu, \with-temporary-selection, do-with-temporary-selection; export \command-definer, $brief-command-help, $long-command-help; export , shell-input-complete?, process-shell-input, do-process-shell-input, terminate-shell, previous-shell-input, next-shell-input, activate-shell-input-newline, activate-shell-input, trim-shell-output-history, cancel-shell-command, , , shell-buffer-section-class, , , shell-section?, section-output-line, section-output-line-setter, ; export ; export , , , , compute-file-signatures, compute-buffer-signatures, compute-section-signature, node-module-name, node-module-name-setter, , $dylan-definition-line-color, , , , make-dylan-shell; export , , , ; export , keyboard-macro-closed?, keyboard-macro-closed?-setter, keyboard-macro-items, keyboard-macro-items-setter, do-execute-keyboard-macro, ; export , browsing-buffer-definition, browsing-buffer-name-key, browsing-buffer-generator, , , , , , ; end module deuce-internals;