I am using JDE 2.3.5, GNU Emacs 21.3.1 (i386-msvc-nt5.1.2600) of 2003-03-27 on buffy, on Windows XP SP2, all-up-to-date.
The JDE does not take me to the line responsible for a given compilation error when I click on that line. Bummer! Thanks in advance for any help (details below). Here is my *Messages* buffer: byte-code: No further errors w32-handle-scroll-bar-event: Beginning of buffer [53 times] Auto-saving... w32-handle-scroll-bar-event: Beginning of buffer [108 times] Auto-saving...done w32-handle-scroll-bar-event: Beginning of buffer [146 times] Auto-saving... w32-handle-scroll-bar-event: Beginning of buffer [73 times] Mark set Parsing error messages...done. Mark set byte-code: No further errors Parsing error messages...done. Mark set byte-code: No further errors Parsing error messages...done. Mark set byte-code: No further errors Parsing error messages...done. Mark set byte-code: No further errors Parsing error messages...done. Mark set byte-code: No further errors Parsing error messages...done. Mark set byte-code: No further errors Parsing error messages...done. Mark set byte-code: No further errors Parsing error messages...done. Mark set byte-code: No further errors Mark set Parsing error messages...done. Mark set byte-code: No further errors Mark set Auto-saving...done GNU Emacs 21.3.1 (i386-msvc-nt5.1.2600) of 2003-03-27 on buffy Mark set [2 times] White space changes Update Tag Table: java.sql.SQLException White space changes Building RetrievalQueryString.java Semantic directory index imenu [2 times] Building Csv.java Semantic directory index imenu [2 times] idle error: "`semantic-oarse-region-default' called in a buffer that does not support bovine parsing." Auto-saving...done [3 times] idle error: "`semantic-oarse-region-default' called in a buffer that does not support bovine parsing." - - - - - - - - - - - - - - - Here is my '.emacs' file: ;; This is a web programmer's .emacs file for GNU Emacs. ;; It has been tested on GNU Emacs version 21.3.1 on Windows XP, ;; Service Pack 2. ;; ;; The GNU Emacs Homepage is located at: ;; http://www.gnu.org/directory/GNU/emacs.html ;; ;; This Document Last Modified: 08/09/2004. ;; ;; Portability: It would take minimal or no changes to port it to run on Unix; ;; the one major change definitely needed would be to remove the "cygwin"-related ;; code, since that is only for putting the BASH shell on Windows. ;; ;; @author: Christopher M. Balz. ;; Feel free to e-mail me regarding this file at any of the addresses below: ;; [EMAIL PROTECTED] ;; [EMAIL PROTECTED] ;; General Notes: It is often said that a new Emacs user should stay away from old, crusty ;; '.emacs' files from others. However, the only way that I ever was able ;; to get a reasonable return on the investment of my time put into setting ;; up my Emacs configurations was by borrowing code snippets from others. ;; It is true that no '.emacs' file should be used uncritically, by newbie or ;; by others. ;; ;; However, for the best user base, new users should be able to ;; fairly easily clip out sections of '.emacs' files that interest them and put ;; them to use right away in their own '.emacs' files. To this end, I have ;; attempted to effectively segment the various independent components of this ;; '.emacs' file and have documented what I have done as clearly as possible. ;; It's very exciting how Emacs modes related to software engineering for the ;; web are maturing. ;; ;; ------------ Invocation of Gnu Emacs on Windows: ;; ;; ;; First, set user-specific 'HOME' environment variable to 'C:/cygwin/home/Christopher Balz/' ;; (substituting whatever your home directory is), which is ;; the directory in which your '.emacs' file is located. Do this by going to the 'Control Panel', ;; then to 'System', then to 'Advanced', then to 'Environment Variables', the to 'Variables ;; for <user>'. ;; ;; Next, run the 'addpm.exe' program to install Emacs on Windows. You don't have to do this, ;; and can do the necessary tasks to run Emacs on Windows manually, but this is the best way to go. ;; ;; If you experience temporary "blanking out" of the screen when you select one of the two Emacs windows ;; (meaning specifically the Windows command line), select 'Properties' on the Emacs short cut, ;; select the 'Options' tab, select the 'Window' radio button, and then select 'Ok' and 'Save ;; for future sessions.' If you run Windows command programs from Emacs, such as Cygwin, you ;; may also get "blanking out" of the screen unless you run "Command" from the Windows "Run" option ;; on the "Start" menu, right-click on the window title bar, select 'Default', ;; and perform the same property change just described, selecting "Window" instead of "Full Screen". ;; ;; ------------ Commense lisping: ;; Add the site directory (the site directory is used to contain non-core Emacs Lisp packages) ;; to the Emacs load-path. The Emacs load-path is ;; the list of directories where Emacs searches for packages that you require. ;; This must be at the head of your .emacs file. This code prepends the site directory to the load path: ;; Standard emacs lisp access (for non-byte-compiled access): (add-to-list 'load-path (expand-file-name "C:/Program Files/emacs/emacs-21.3/site-lisp/")) (add-to-list 'load-path (expand-file-name "C:/Program Files/emacs/emacs-21.3/site/lisp/progmodes/")) ;; System-wide emacs customizations: (add-to-list 'load-path (expand-file-name "C:/Program Files/emacs/site/")) (add-to-list 'load-path (expand-file-name "C:/Program Files/emacs/site/snippets/")) ;; Personal emacs/site: (add-to-list 'load-path (expand-file-name "~/emacs/site/")) ;; So that Emacs can find the home directory files (desktop, etc.): (add-to-list 'load-path (expand-file-name "~/")) ;; Specific Packages: ;; These packages are now included in the 'cedet' package (below), ;; from 'http://cedet.sourceforge.net': ;; (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/eieio-0.17/")) ;; (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/semantic-1.4.4/")) ;; (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/speedbar-0.14beta4/")) ;; Load CEDET (Needed by the Java Development Environment for Emacs, and must be actively 'loaded'): (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/cedet-1.0beta3b/common/")) (load-file "c:/Program Files/emacs/site/cedet-1.0beta3b/common/cedet.elc") ;; Enabling SEMANTIC minor modes. See semantic/INSTALL for more ideas. (semantic-load-enable-code-helpers) (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/elib-1.0/")) (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/psgml-1.2.5/")) ;; For Emacs JDE (from http://sunsite.dk/jde/): ;;(add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/jde-2.3.2/lisp/")) (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/jde-2.3.5/lisp/")) (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/jmaker-2.1/")) ;; For the Emacs Web Browser: (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/emacs-w3m-1.4.3/")) (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site-lisp/w3m/")) ;; For CSP, a formal notation for _c_ommunicating _s_equential _p_rocesss (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/csp-mode-1.0.1/")) ;; For Promela, a concurrent process specification language: (add-to-list 'load-path (expand-file-name "c:/Program Files/emacs/site/promela/")) ;; On Windows 2000, it is sufficient to set the user-specific 'HOME' environment ;; variable (see above) to the path to your .emacs file. For example, mine goes to: ;; 'C:/cygwin/home/Christopher Balz'. Most other systems should have a ;; reasonably sane approach to doing this. These approaches are best. ;; However, if on some other system you have ;; trouble saving your customizations (meaning, the customizations possible ;; through the command ESC-x customize-group, and meaning, the error message ;; 'saving settings from 'emacs -q' would overwrite customizations'), ;; explicitly assigning the 'user-init-file' variable is a sure-fire way ;; to avoid the problem: ;; (setq user-init-file (expand-file-name "~/.emacs") ;; custom-file (expand-file-name "~/.emacs")) ;; For use of Bash shell via Cygwin on Windows 2000 (or NT), available from: ;; http://www.cygwin.com/ ;; (if you do not have Cygwin installed, comment all of this section out). ;; This assumes that Cygwin is installed in C:\cygwin (the ;; default) and that C:\cygwin\bin is not already in your ;; Windows Path (it generally should not be). ;; (setq exec-path (append (list "c:/cygwin/bin" "c:/Progra~1/emacs/site/w3m-0.5.1" ) exec-path)) (setenv "PATH" (concat "c:\\cygwin\\bin;c:\\Progra~1\\emacs\\site\\w3m-0.5.1;" (getenv "PATH"))) ;; ;; NT-emacs assumes a Windows command shell, which you change ;; here. ;; (setq process-coding-system-alist '(("bash" . undecided-unix))) (setq w32-quote-process-args ?\") (setq shell-file-name "bash") (setenv "SHELL" shell-file-name) (setq explicit-shell-file-name shell-file-name) ;; End of bash shell use via Cygwin section. ;; This removes unsightly ^M characters that would otherwise ;; appear in the output of java applications. ;; (add-hook 'comint-output-filter-functions 'comint-strip-ctrl-m) ;; Set start-up directory with cygwin nomenclature ;; (your configuration files _must_ be in this directory): (setq startup-directory "~/") ;; generic-x.el is a standard package with Emacs 21. It contains some ;; very neat little modes, such as a JavaScript mode (but said mode ;; is not yet as good as c-mode for JavaScript, for it does not ;; recognize /*-style comments. ;; All modes supported by generic-x.el are automatically applied ;; unless overridden below (for example, JavaScript mode is overridden ;; below). (require 'generic-x) ;; -------- JDE is the Java IDE for Emacs. (require 'jde) ;; Use no tabs when editing Java for cross-editor indentation compatibility. (defun my-jde-indent-setup () (setq indent-tabs-mode nil) (setq jde-basic-offset 4)) ;; ;; Add the above hook to the jde-mode. (add-hook 'jde-mode-hook 'my-jde-indent-setup) ;; --------- Begin CSP Section (require 'csp-mode) (setq auto-mode-alist (cons '("\\.csp$" . csp-mode) auto-mode-alist)) (setq csp-validate-command "c:/Windows/System32/cmd.exe e:off /c 'C:\\Program Files\\probe-1.30-windows\\probe-1.30-windows\\probe.exe'" ) ;; --------- End CSP Section ;; -------- Begin Promela Section (autoload 'promela-mode "promela.el" "PROMELA mode" nil t) (setq auto-mode-alist (append (list (cons "\\.promela$" 'promela-mode) (cons "\\.spin$" 'promela-mode) (cons "\\.pml$" 'promela-mode) ;; (cons "\\.other-extensions$" 'promela-mode) ) auto-mode-alist)) ;; -------- End Promela Section ;; --------- Begin w3m Section (HTML browser) ;;;====================================================================== ;;; w3m browser mode: ;;;====================================================================== (require 'w3m-load) ;;; This integrates the external program w3m with emacs. (setq w3m-command (concat "c:/Program Files/emacs/site/w3m-0.5.1/w3m.exe" "")) (setq w3m-browse-url (concat "c:/Program Files/emacs/site/w3m-0.5.1/w3m.exe" "")) (setq w3m-find-file (concat "c:/Program Files/emacs/site/w3m-0.5.1/w3m.exe" "")) ;;; Allow browsing of local files: (setq w3m-dirlist-cgi-program "C:/Program Files/emacs/site/w3m-0.5.1/scripts/dirlist.cgi") ;;; causes the return key to submit a form (setq w3m-use-form t) ;;; Need to load the search to change the search-engine-alist without ;;; using customize, since there appears to be no hook into the ;;; w3m-search function to activate (load-library "w3m-search") ;;; for a list of available engines, or to add a search engine, see ;;; the variable 'w3m-search-engine-alist' defined in w3m-search.el. ;;; It's set in the customization section at the end of this file (add-to-list 'w3m-search-engine-alist '("google" "http://www.google.com/search?num=30&q=%s" nil)) (add-to-list 'w3m-search-engine-alist '("google-groups" "http://groups.google.com/groups?num=30&q=%s" nil)) (add-to-list 'w3m-search-engine-alist '("teo" "http://www.teoma.com/search.asp?t=%s" nil)) ;;; set the default search engine (setq w3m-search-default-engine "google") ;;; Use programs contributed with the w3m distribution (autoload 'w3m-find-file "w3m" "w3m interface function for local file." t) (autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGINE." t) (autoload 'w3m-weather "w3m-weather" "Display weather report." t) (autoload 'w3m-antenna "w3m-antenna" "Report change of WEB sites." t) (autoload 'w3m-namazu "w3m-namazu" "Search files with Namazu." t) ;;; external browser in which to view pages/graphics (if (eq window-system 'w32) (setq w3m-content-type-alist '(("text/plain" "\\.\\(txt\\|tex\\|el\\)" nil) ("text/html" "\\.s?html?$" w32-shellex-on-object file) ("image/jpeg" "\\.jpe?g$" w32-shellex-on-object file) ("image/png" "\\.png$" w32-shellex-on-object file) ("image/gif" "\\.gif$" w32-shellex-on-object file) ("image/tiff" "\\.tif?f$" w32-shellex-on-object file) ("image/x-xwd" "\\.xwd$" w32-shellex-on-object file) ("image/x-xbm" "\\.xbm$" w32-shellex-on-object file) ("image/x-xpm" "\\.xpm$" w32-shellex-on-object file) ("image/x-bmp" "\\.bmp$" w32-shellex-on-object file) ("video/mpeg" "\\.mpe?g$" w32-shellex-on-object file) ("video/quicktime" "\\.mov$" w32-shellex-on-object file file) ("application/postscript" "\\.\\(ps\\|eps\\)$" w32-shellex-on-object file) ("application/pdf" "\\.pdf$" w32-shellex-on-object file)) )) ;; -------- End w3m Section (HTML browser) ;; -------- Begin JavaScript editing section. -------- ;; This is my way of loading c-mode and hooking .js files to it, ;; not superseded by the JavaScript mode in generic-x.el (see above). (autoload 'c-mode "cc-mode.el") (setq auto-mode-alist (cons '("\\.js$" . c-mode) auto-mode-alist)) ;; This is the container for my custom js editing mode ;; It uses no tabs for cross-editor compatibility. (defun my-js-indent-setup () (setq indent-tabs-mode nil) (setq c-basic-offset 4)) ;; ;; Add the above hook to the c-mode. (add-hook 'c-mode-hook 'my-js-indent-setup) ;; -------- End JavaScript editing section. -------- ;; -------- Begin XML and SGML Editing Section -------- ;; ;; -> Note: this handles HTML also but ;; a formal DTD declaration is needed for that. Instead, I use ;; html-helper-mode, which handles embedded scripts as well. ;; -> From: http://www.lysator.liu.se/~lenst/about_psgml/ ;; -> Environment Variable Must be set for dtd feature to work: ;; PSGML needs to know where to find the SGML catalog files. There are a couple ;; of ways to accomplish this, as described in the PSGML documentation. I use the method ;; that makes use of the environment variable SGML_CATALOG_FILES because it is ;; also used by the SGML parser (patience, I come to it in the next section of this article). ;; So, now that you have a set of DTDs and a catalog file, create the afore-mentioned ;; environment variable and set it to include the path to your xhtml1.soc file, for ;; example d:\DTDs\xhtml1\xhtml1.soc. If you have more that one catalog file, ;; you can include them all, separating them with a path delimiter (";" on Windows, ;; ":" on UNIX-based systems). ;; Here is my value: c:\Program Files\dtds\xhtml1\xhtml1.soc;c:\Program Files\dtds\hodmacro\hodmacro.soc (require 'sgml-mode "psgml.el" "Major mode to edit SGML files.") (autoload 'xml-mode "psgml.el" "Major mode to edit XML." t) (setq auto-mode-alist (append '( ("\\.sgml$" . sgml-mode) ("\\.idd$" . sgml-mode) ("\\.ide$" . sgml-mode) ("\\.xml$" . xml-mode) ("\\.xsl$" . xml-mode) ("\\.fo$" . xml-mode) ) auto-mode-alist ) ) ; Auto-activate parsing the DTD when a document is loaded. ; If this isn't enabled, syntax coloring won't take affect until ; you manually invoke "DTD->Parse DTD" (setq sgml-auto-activate-dtd t) ;;; Set up my "DTD->Insert DTD" menu. (setq sgml-custom-dtd ' ( ( "DITA concept" "<?xml version=\"1.0\"?>\n<!DOCTYPE concept SYSTEM \"concept.dtd\">" ) ( "DITA task" "<?xml version=\"1.0\"?>\n<!DOCTYPE task SYSTEM \"task.dtd\">" ) ( "DITA reftopic" "<?xml version=\"1.0\"?>\n<!DOCTYPE reftopic SYSTEM \"reftopic.dtd\">" ) ( "DITA APIdesc" "<?xml version=\"1.0\"?>\n<!DOCTYPE APIdesc SYSTEM \"apidesc.dtd\">" ) ( "DITA topic" "<?xml version=\"1.0\"?>\n<!DOCTYPE topic SYSTEM \"ditabase.dtd\">" ) ( "HOD Script" "<?xml version=\"1.0\"?>\n<!DOCTYPE HASCRIPT SYSTEM \"HAScript.dtd\">" ) ( "XHTML 1.0 Strict" "<?xml version=\"1.0\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"xhtml1-strict.dtd\">" ) ( "XHTML 1.0 Transitional" "<?xml version=\"1.0\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"xhtml1-transitional.dtd\">" ) ( "XHTML 1.0 Frameset" "<?xml version=\"1.0\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"xhtml1-frameset.dtd\">" ) ( "HTML 4.01 Transitional" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">" ) ( "HTML 4.01 Strict" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">" ) ( "HTML 4.01 Frameset" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\">" ) ( "IBMIDDoc" "<!DOCTYPE ibmiddoc PUBLIC \"+//ISBN 0-933186::IBM//DTD IBMIDDoc//EN\" [\n]>") ( "DOCBOOK XML 4.1.2" "<?xml version=\"1.0\"?>\n<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.1.2//EN\" \"http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd\" [\n]>") ) ) (define-key sgml-mode-map "\C-i" 'sgml-insert-element) ; override default validate command to utilize OpenSP's onsgmls executable (setq sgml-validate-command "onsgmls -s %s %s") ; override default xml-mode validate command to utilize OpenSP's onsgmls ; executable by using a mode-hook, since there appears to be no other means ; to accomplish it. (defun my-psgml-xml-hook () (setq sgml-validate-command "onsgmls -s %s %s") (setq sgml-declaration "C:\Program Files\openjade-1.3.1\pubtext\xml.dcl") ) (add-hook 'xml-mode-hook 'my-psgml-xml-hook) ;; -- End psgml / xml section -------- ;; --- Begin HTML editing section: ;; I require html helper mode because the hhm-config.el code seems to ;; cause an error if I have both autoloaded. (require 'html-helper-mode "html-helper-mode.el") (autoload 'html-helper-mode "hhm-config.el") (setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist)) (setq auto-mode-alist (cons '("\\.asp$" . html-helper-mode) auto-mode-alist)) (setq auto-mode-alist (cons '("\\.phtml$" . html-helper-mode) auto-mode-alist)) ;; --- End HTML editing section. ;; ------ JSP Mode (note: this must come after html-helper-mode is loaded (as it is loaded above)): (require 'jsp-html-helper-mode "jsp-html-helper-mode.el") (setq auto-mode-alist (cons '("\\.jsp$" . jsp-html-helper-mode) auto-mode-alist)) ;; ----- CSS mode. ;; This is for the css-mode (will not be necessary in later versions; it should ;; be in the css-mode code itself): (require 'apropos) ;; For css-mode: (from http://synthcode.com/emacs/lang/css-mode.el ) ;; Note: I've had crashing in this mode when I use an M-x indent-region ;; command. (autoload 'css-mode "css-mode.el") (setq auto-mode-alist (cons '("\\.css$" . css-mode) auto-mode-alist)) ;; ----- End CSS mode. ;; Make sure that .emacs file is edited in lisp mode: (setq auto-mode-alist (cons '("\.emacs" . lisp-mode) auto-mode-alist)) ;; ----- Diary and Appointment Notification Section. ;; There are also some variables set via the Emacs Customization Utility. ;; See the end of the file for those. ;; Read the diary: (diary) ;; Fancy display for Calendar ;; Here is some code to make your calendar and diary display fancier: (setq view-diary-entries-initially t mark-diary-entries-in-calendar t number-of-diary-entries 7) (add-hook 'diary-display-hook 'fancy-diary-display) (add-hook 'today-visible-calendar-hook 'calendar-mark-today) ;; Show column number on mode line. (column-number-mode t) ;; Show time on mode line, and set appointment notification. ;; (day-and-date) (display-time) (add-hook 'diary-hook 'appt-make-list) (diary 0) ;; Special function to make appointments work: (defun update-my-calendar () (let ((diary-buffer (get-file-buffer diary-file)) (number-of-diary-entries 30)) (if diary-buffer (progn (set-buffer diary-buffer) (revert-buffer t t))) (calendar))) ;; Enable syntax coloring. (global-font-lock-mode t) (setq-default transient-mark-mode t) ;; Global key maps: (global-set-key "\C-xU" 'browse-url-of-file) (global-set-key "\e`" 'search-forward-regexp) (global-set-key "\e/" 'replace-regexp) (global-set-key "\C-xtl" 'goto-line) (global-set-key "\e[" 'enlarge-window) (global-set-key "\e]" 'shrink-window) (global-set-key "\e=" 'eval-current-buffer) ;; These two key bindings are for up and down scrolling by a either single line at a time ;; or by N lines at a time (default is scroll by one single line at a time). This is ;; very useful when working with narrow horizontal windows. ;~) ;; To enter the desired N, hold down \C and type the number and then hit z or q, all the ;; while holding down \C. ;; From the "Writing GNU Emacs Extensions" book, by Bob Glickstein. (defun scroll-n-lines-up (&optional n) "Scroll up N lines (1 line by default)." (interactive "P") (scroll-up (prefix-numeric-value n))) (defun scroll-n-lines-down (&optional n) "Scroll down N lines (1 line by default)." (interactive "P") (scroll-down (prefix-numeric-value n))) (global-set-key "\C-q" 'scroll-n-lines-up) (global-set-key "\C-z" 'scroll-n-lines-down) ;; These two bindings make it easier to find a mismatched parenthesis: (global-set-key "\e'" 'forward-sexp) (global-set-key "\e;" 'backward-sexp) ;;; Bracket/brace/parentheses highlighting: ;; The following is the command for Emacs 20.1 and later: (show-paren-mode 1) ;; * Here is some Emacs Lisp that will make the % key show the matching ;; parenthesis, like in vi. In addition, if the cursor isn't over a ;; parenthesis, it simply inserts a % like normal. (`Parenthesis' actually ;; includes and character with `open' or `close' syntax, which usually means ;; "()[]{}".) ;; By an unknown contributor (global-set-key "%" 'match-paren) (defun match-paren (arg) "Go to the matching parenthesis if on parenthesis otherwise insert %." (interactive "p") (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) (t (self-insert-command (or arg 1))))) ;; The following functions enable on-the-fly switching between the bash shell and DOS: (defun set-shell-bash() (interactive) ;; (setq binary-process-input t) (setq shell-file-name "bash") (setq shell-command-switch "-c") (setq explicit-shell-file-name "bash") (setenv "SHELL" explicit-shell-file-name) (setq explicit-sh-args '("-login" "-i")) (setq w32-quote-process-args ?\") (setq mswindows-quote-process-args t) ) (defun set-shell-cmdproxy() (interactive) (setq shell-file-name "cmdproxy") (setq explicit-shell-file-name "cmdproxy") (setenv "SHELL" explicit-shell-file-name) (setq explicit-sh-args nil) (setq w32-quote-process-args nil) ) (global-set-key "\C-xg" 'set-shell-bash) ;; g for Gnu (\C-xb is used for buffer switch command). (global-set-key "\C-xd" 'set-shell-cmdproxy) ;; End shell-switch on-the-fly. ;; Begin move-to-window block: ;; This code is from the O'Reilly "GNU Emacs Extensions" book. ;; The purpose of it is to make a reasonable way to move to the next OR previous window. ;; Change from C-x o to C-x n, so that we have Next and Previous. (global-set-key "\C-xn" 'other-window) ;; We must make our own function to go to the previous window (but it's simple): (defun other-window-backward () "Select the previous window." (interactive) (other-window -1)) ;; Now we can bind to this function: (global-set-key "\C-xp" 'other-window-backward) ;; End move to window block. ;; This turns on the buffer select list in the minibuffer to make it easy to ;; edit any buffer in a given window or frame (C-r and C-s move backwards and forwards, respectively, ;; through the buffer select list). (require 'iswitchb) (iswitchb-default-keybindings) ;; old: (setq show-paren-mode t) ;; old: (setq show-paren-style 'parenthesis) ;; Set a high recursion limit for parsing the long java files: (setq max-specpdl-size 1000) (put 'upcase-region 'disabled nil) (put 'downcase-region 'disabled nil) ;; Adjust the colors and fonts to preference: (set-default-font "Fixedsys") (set-cursor-color "Deep Pink") (set-face-foreground 'highlight "blue") (set-face-background 'highlight "red") (set-foreground-color "Green") (set-background-color "Gray10") (set-face-foreground 'custom-group-tag-face "Yellow") (set-face-foreground 'custom-variable-tag-face "Magenta") (set-face-foreground 'custom-state-face "Yellow") (set-face-foreground 'font-lock-type-face "Goldenrod") (set-face-foreground 'font-lock-comment-face "OrangeRed") (set-face-foreground 'font-lock-function-name-face "Turquoise") (set-face-foreground 'font-lock-keyword-face "Yellow") (set-face-foreground 'font-lock-string-face "Magenta") (set-face-foreground 'font-lock-variable-name-face "Coral") (set-face-foreground 'modeline "yellow") (set-face-background 'modeline "purple4") (set-face-background 'region "MidnightBlue") (set-face-background 'secondary-selection "dodger blue") (set-face-foreground 'diary-face "Yellow") (set-face-background 'holiday-face "Pink") (set-face-foreground 'holiday-face "Red") (set-face-foreground 'widget-field-face "Sienna") (set-face-foreground 'widget-single-line-field-face "Firebrick") (set-face-foreground 'widget-inactive-face "White") (set-face-foreground 'widget-documentation-face "Coral") (set-mouse-color "yellow") ;; The following settings pertain to features that you may not have installed on your GNU Emacs: ;; Begin speedbar section (Values set via Emac's 'Customize' interface are found at the ;; bottom of the file, and hence if there is a 'conflict' they override these values). (set-face-foreground 'speedbar-directory-face "Green") (set-face-background 'speedbar-directory-face "Black") (set-face-foreground 'speedbar-highlight-face "DarkSlateGray") (set-face-background 'speedbar-highlight-face "Gold") (set-face-background 'speedbar-file-face "MidnightBlue") (set-face-foreground 'speedbar-file-face "Gold") (set-face-foreground 'speedbar-tag-face "Orange") ;; Set the speedbar pop-up window properties: Note that if the speedbar height is too ;; great, the windowing-system's title bar for the ;; speedbar window (at least on Windows2000) will not show completely. (setq speedbar-frame-parameters '((width . 30) (height . 45) (foreground-color . "green") (background-color . "black"))) ;; End speedbar section. ;; You may not want the following line if you do not have paren-matching running: (set-face-foreground 'show-paren-match-face "Red") ;; The following line is only if you have semantic installed: ;; doesn't work for semantic-1.4beta5 (set-face-foreground 'semantic-intangible-face "Gold") ;; The following line is only if you have the JDE installed: (set-face-foreground 'jde-java-font-lock-link-face "Gold") ;; --------- This is SGML colorizing with the psgml package, loaded above. ;;; Set up and enable syntax coloring. ; Create faces to assign markup categories. (make-face 'sgml-doctype-face) (make-face 'sgml-pi-face) (make-face 'sgml-comment-face) (make-face 'sgml-sgml-face) (make-face 'sgml-start-tag-face) (make-face 'sgml-end-tag-face) (make-face 'sgml-entity-face) (make-face 'sgml-attribute-face) ; Assign attributes to faces. (set-face-foreground 'sgml-doctype-face "yellow") (set-face-foreground 'sgml-sgml-face "cyan1") (set-face-foreground 'sgml-pi-face "magenta") (set-face-foreground 'sgml-comment-face "purple") (set-face-foreground 'sgml-start-tag-face "deep sky blue") (set-face-foreground 'sgml-end-tag-face "white") (set-face-foreground 'sgml-entity-face "orange") ; Assign faces to markup categories. (setq sgml-markup-faces '((doctype . sgml-doctype-face) (pi . sgml-pi-face) (comment . sgml-comment-face) (sgml . sgml-sgml-face) (comment . sgml-comment-face) (start-tag . sgml-start-tag-face) (end-tag . sgml-end-tag-face) (entity . sgml-entity-face))) ; PSGML - enable face settings (setq sgml-set-face t) ;; ---- End psgml highlighting section. ;; Gnus: using only for mail. (setq gnus-select-method '(nntp "news.statesoftware.com")) (add-hook 'nntp-server-opened-hook 'nntp-send-authinfo) ;; This checks to see if you've set the variable startup-directory and checks to ;; see if you've set it to a real directory. If so, it will switch there. (let ((working-directory (or startup-directory nil))) (if (and (and working-directory) (file-directory-p working-directory)) (cd working-directory))) ;; Make sure that tabs are being used (default behavior, but doesn't hurt in case something got changed): ;; (setq indent-tabs-mode t) ;; Make sure that no tab characters are used: (setq indent-tabs-mode nil) ;; Set the variable default-tab-width. (setq default-tab-width 4) ;; Define an easy way to move up in a dired directory, ;; To instantly view a file in the web browser (IE or whatever) (this needs a current directory argument to work better): ;; **NOTE: These bindings must be in a mode-hook, since dired isn't automatically ;; loaded on startup and so it's keymap is void until you go into dired. (add-hook `dired-mode-hook `(lambda () (define-key dired-mode-map "\C-w" 'dired-up-directory) (define-key dired-mode-map "\C-b" 'browse-url))) ;; ---------- BEGIN BUG WORKAROUNDS SECTION: ;; Not needed any more (GNU Emacs 21.3.1) but preserved just in case: ;; This prevents dired from displaying itself in warning-face when the ;; default-tab-width is set to 2. ;; (defadvice dired-readin (around ecm-dired-indent activate) ;; "Prevent indentation in dired from using tabs." ;; (let ((indent-tabs-mode nil)) ;; ad-do-it)) ;; ----- SMTP section: (load-library "smtpmail") (setq smtpmail-smtp-server "smtp.earthlink.net") (setq send-mail-function 'smtpmail-send-it) (setq smtpmail-smtp-service "smtp") (setq smtpmail-local-domain "LocalDomain") (setq smtpmail-debug-info t) ;(setq smtpmail-debug-info 'nil) ;; if no debug info needed (setq smtpmail-code-conv-from nil) ;; ---------- END BUG WORKAROUNDS SECTION: ;; This enables saving the current desktop on shutdown. The ESC-x desktop-save ;; command must be given once for this to work in perpetuity. (desktop-load-default) (desktop-read) ;; --------- ** My custom hand-entered additions end here. ** ;; --------- ** Begin Auto-written Emacs Customization Section ** ;; The following has been automatically written by the Emacs customization utility: (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(appt-message-warning-time 60 t) '(browse-url-browser-function (quote browse-url-default-windows-browser)) '(browse-url-generic-program "mozilla") '(calculator-number-digits 10) '(case-fold-search t) '(current-language-environment "Latin-1") '(default-input-method "latin-1-prefix") '(frame-background-mode nil) '(global-font-lock-mode t nil (font-lock)) '(jde-auto-parse-max-buffer-size 0) '(jde-bug-jdk-directory "c:/j2sdk1.4.0/") '(jde-bug-vm-includes-jpda-p t) '(jde-compile-option-verbose t) '(jde-db-debugger (quote ("JDEbug" "" . "Executable")) t) '(jde-db-source-directories (quote ("c:/Program Files/jakarta-tomcat-3.2.4/webapps/dynasurv/WEB-INF/classes/com/treelogic_swe/frameworks/dynaquery" "c:/Program Files/jakarta-tomcat-3.2.4/webapps/dynasurv/WEB-INF/classes/com/treelogic_swe/frameworks/dynaform" "c:/Program Files/jakarta-tomcat-3.2.4/webapps/dynasurv/WEB-INF/classes/com/treelogic_swe/frameworks/dynafrontend"))) '(jde-debugger (quote ("JDEbug"))) '(jde-global-classpath (quote (";$CLASSPATH"))) '(jde-help-browser-function "browse-url") '(jde-help-docsets (quote (("JDK API" "$JAVA/Javadoc/j2sdk-1_4_2-doc/docs/api" nil) ("User (javadoc)" "$STRUTS/Javadoc/struts.apache.org/api" nil) ("User (javadoc)" "$J2EE_HOME/docs/api" nil)))) '(jde-javadoc-describe-field-template "\"* \" (jde-javadoc-field-type modifiers) \" \" (jde-javadoc-code name) \" .\"") '(jde-javadoc-describe-method-template "\"* The \" (jde-javadoc-code name) \" method .\"") '(jde-jdk-doc-url "$JAVA/Javadoc/j2sdk-1_4_2-doc/docs/api") '(jde-jdk-registry (quote (("1.4.2_05" . "$JAVA_HOME")))) '(jde-run-option-classpath (quote ("runner.jar;servlet.jar;org.apache.tomcat.shell.Startup"))) '(jde-run-option-verbose (quote (t nil nil))) '(jde-run-option-vm-args (quote ("-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=6001,server=y,suspend=n"))) '(jde-setnu-mode-threshold 200000) '(jde-sourcepath (quote ("$CATALINA_HOME/webapps" "$CATALINA_HOME/webapps/struts-hello_world" "$JAVA/lib"))) '(mail-host-address "") '(midnight-delay 34200) '(midnight-hook (quote (update-my-calendar))) '(midnight-mode t nil (midnight)) '(printer-name "USB001" t) '(show-paren-mode t nil (paren)) '(smtpmail-default-smtp-server "smtp.earthlink.net") '(speedbar-show-unknown-files t) '(speedbar-use-images t) '(transient-mark-mode t) '(uniquify-buffer-name-style nil nil (uniquify)) '(user-full-name "Christopher M. Balz") '(user-mail-address "[EMAIL PROTECTED]")) (custom-set-faces ;; custom-set-faces was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(speedbar-button-face ((t (:background "black" :foreground "deep sky blue")))) '(speedbar-file-face ((t (:background "black" :foreground "yellow1")))) '(speedbar-selected-face ((((class color) (background dark)) (:background "black" :foreground "red" :underline t)))) '(speedbar-tag-face ((t (:background "black" :foreground "Orange"))))) ===== Christopher M Balz Software Engineer 160 Lincoln Avenue Palo Alto, CA 94301-2437 U.S.A. home: 650.327.0367 work: 650.965.2900 x 207 [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] __________________________ ". . . / This Cabinet is formd of Gold / And Pearl & Crystal shining bright And within it opens into a World / . . . Another England there I saw / Another London with its Tower Another Thames & other Hills / And another pleasant Surrey Bower . . ." - from "The Crystal Cabinet", a poem by William Blake.
