Changes Release 1.2.25 (03 January 2007) ============== * moved over source tree Release 1.2.24 (01 November 2004) ============== + incorporated Matthew Mundell's patch: - echo intro - keybinding changes to be compliant with manual's specifications - some elisp fixes + added analysis modifier keywords to all spice standards, with font-locking + modified instance name regexp + modified match variable name font-locking for Xemacs21.4.11 on windows + changed url to point to spice-mode.4t.com site Release 1.2.23 (29 March 2003) ============== + spectre spice compatibility submode. Spice-mode now also recognizes some spectre extensions to the spice language. This is NOT replacing spectre-mode! It merely handles spice extensions parsed by the spectre simulator spice compatibility parser. + added some hspice analysis and general keywords + double quoted (") words in comments now highlight + also highlight e+-?? constructs in numbers (in same font as scale factors) + improved scale factor regexp for highlighting + changed spice formats to spice standard Release 1.2.22 (16 March 2003) ============== + \n keeps causing problems. Changed it to a punctuation character in the syntax table. Hope this is a good choice ... + added extra keywords to hspice options and draccdl device paramters + changed comment and doc regexps slightly. Docs can be nested in comments now, as in eldo-mode + quoted (') words in comments and docs now highlight + scale factors highlight in constant face, seems a more appropriate face + added a test netlist to the distribution, should catch stupid mistakes + cleaned up doc string of spice-mode somewhat Release 1.2.21 (26 February 2003) ============== + added font-lock expression for standard spice scale factors. Could be considered overkill... Only highlights the scale factor part, this might be annoying. Anyways, easily removed if not wanted + Added C-cC-f shortcut key in Xemacs for running font-lock-fontify-buffer + modified syntax table: \n is no comment ender anymore. This confused font-lock in some situations. Making \n (or ^J) a standard newline (whitespace) character fixes these problems + fixed bug for non-file buffers in spice-mode. Probably nobody ever does this, but in Xemacs it makes the menu crash because spice-output-file-p assumes spice-output-filename works even if buffer-file-name is nil + added font-lock-set-defaults. Seems to be required, font-lock then initializes more reliably Release 1.2.19 (26 December 2002) ============== + added local variable spice-tempo-tags (Manu suggested this) to store tempo abbrev's in. Add them to tempo-tags instead of tempo-local-tags. + added extra submode to Eldo: Eldo Verilog-A (EldoVlogA) + added submode to Layla: Mondriaan syntax extensions + added DracCDL mode. Syntax extensions used by Cadence' Dracula LOGLVS product + since so many submodes with dependencies, added a check if setup is OK with function spice-check-spice-standard + changed spice-model-name regexp to accept more model names + added verilog A include names to spice-library-regexp-start + added extra spice-eldo-keywords, introduced spice-eldo-colon-keywords, spice-eldo-macromodel-keywords, spice-eldovloga-keywords, spice-eldovloga-colon-keywords, spice-mondriaan-keywords, spice-draccdl-keywords, spice-eldo-types, spice-eldo-vloga-model-type-names, spice-draccdl-device-keywords, spice-draccdl-device-parameters, spice-mondriaan-entity-start-keywords, spice-draccdl-entity-start-keywords + added new face to handle builtins: spice-builtin-face + fixed problem with font-lock function matchers. xemacs only moves to the end of the reported match, which introduced endless CPU loops. Function matchers now at least move one position forward, functions: spice-match-variable-name, spice-match-eldo-colon-keywords. + experimented with a xinstance function matcher. It would more easily handle all correct xinstance cases (like unlimited number of comment lines), but is much slower than a regexp. So stayed with "buggy" regexp for now. + eldo: now handle labels with "'s and without "'s separately + eldo: handle builtin y macro's and user y models separately + spaces are now allowed in front of .option statements + highlight embedded changelog entries as in change-log-mode + tab (\t) now calls tempo-complete-tag, shift tab indent-for-tab-command + updated settling macro (thanx Manu) + added Manu's Digital and Mixed-signal eldo macro's. Also in menu. + added Spice Formats menu entry in Customize menu + updated mode description to reflect user visible defaults changes + cleaned up various comment strings, removed unused/obsolete code, reformated code, added documentation strings, renamed various functions, etc. Release 1.2.11 (7 August 2002) ============== + set font-lock-multiline variable to t. Helps avoid recoloring problems in multi line font-lock regexps + fixed bugs in include file module + added FastHenry submode + added hspice FEM Raphael constructs to hspice submode Release 1.2.8 (15 April 2002) ============= + adapted spice-xinstance-regexp slightly to better match xinstances. Tried to font-lock xinstances using matcher function instead of regexps. Is still not 100% reliable, so still prefering (safe) regexps. Changed matcher number of xinstance regexp throughout code. + replaced assoc by assoc-ignore-case in .subckt searching. Spice is case insensitive ! (Thanx Manu) Release 1.2.7 (11 April 2002) ============= + First of all: major sync-up with eldo-mode: Modified spice-mode-name to be more in sync with eldo-mode Modified spice-eldo-keywords, spice-eldo-analyses, added keywords found in eldo-mode Changed foreground color of spice-model-name-face to Red3, same as eldo-mode Modified spice-xinstance-regexp and spice-model-name-regexp to be more in sync with eldo-mode Changed spice-mode-map, added key bindings for tempo completion and comment hiding/unhiding. Other bindings are not always compatible between spice- and eldo-mode Adapted tempo templates to have easy tags for completion mostly abbrev cmp. Changed gain margin extraction macro taken from eldo-mode Added settling time macro, also taken from eldo-mode Extended a lot of templates, code copied from eldo-mode Added comment bar in menu, as in eldo-mode Added new templates in eldo macromodels submenu (copied from eldo-mode) Added nobound_phase to default options of empty eldo files + changed syntax of newline to comment ender. Removes \n from \\s- category, this caused problems with font-locking + Always display .subckt in other window, even if in current file. Seems better user interface. + Finally solved recalculation of imenu. Set imenu--index-alist to nil and recalculate with imenu--make-index-alist. + Added tempo-complete-tag explanation in mode description. Left Abbrev mode in for now, so two alternatives for template completion exist now. + miscellaneous typing error corrections. Release 1.2.6 (9 April 2002) ============= + added url link in spice customization group + actually use spice-custom-set to avoid ugly "Activate Customization in buffer" trick to apply user's customizations when spice-mode is already in use + added Netlist and Main Circuit headings to spice-section-alist, changed type of extra switches to sexp, and automatically apply customization to the menu's of existing spice-mode buffers + changed name of spice-output-filenames-alist to spice-output-filename-alist + removed buffer local spice-standard-local var. Use global spice-standard var everywhere. This means, all spice-mode buffers have the same standard's setting. Earlier, different buffers could have different settings of spice- standard, this is however incompatible with automatic activation of user's customization in existing spice-mode buffers + added eldo-mode constructs ".subckt lib" and ".model lib" to library regexp. Don't know if anyone ever uses them... + added "macro" keyword to spice2g6, "subdup" keyword to eldo, "msgnode" option parameter to eldo, "macro" to entity start spice2g6 keywords, removed "subckt" keyword from layla entity start list + renamed spice-words-init to spice-kywords-init, which is clearer describing what it does. + applied downcase to heading strings where appropriate. Seems the only way to make section code behave in a case insensitive way. + adapted font-lock initialization of .subckt and .model handling to include new eldo constructs .model lib and .subckt lib. Also applied the same changes to imenu initialization + split off spice-output mode to become a more independent mode: added spice-output-mode-map (empty for now...), spice-output-menu-list for a separate output-mode menu, imenu-generic-expression is different, etc. + split off menu code in three functions: spice menu, spice-output menu and common menu code + added spice-menu-init function initializing both spice-menu-list and spice-output-menu-list, changed spice-update-mode-menu to only install the global menu lists in a buffer, not recreate them from scratch + changed customization submenu. Removed "Activate..." function since it is no longer needed, added faces and section customization. These are most useful for typical users + clarified global versus buffer local, required for automatic customization support. Some global variables are not yet reinitialized. Still TODO + wrapped ffap-at-mouse in spice-load-file-at-mouse. Added substitute-in-file-name to be able to handle environment variables in library names + Modified mode-map initialization as explained in info pages: make creation atomic with a setq. + adapted spice-load-include-files to also handle recursive loading, and made recursive loading the default. + cleaned up various comment strings, removed unused/obsolete code, reformated code, added documentation strings, renamed various functions, etc. Release 1.2 (27 March 2002) =========== + changed maintainer string to include Emmanuel Rouat + fixed a bug in `spice-colorize-libraries', by saving the match data (done with a save-match-data form), a search-replace on the included file name now works. This bug was caused by having nested search functions destroying the saved match data. + removed bogus save-match-data calls in fast font-lock matcher functions `spice-match-variable-name' and `spice-match-eldo-colon-keywords'. Only now really understand what save-match-data is about, see previous bug fix ;) + fixed a bug in `spice-font-lock-keywords-1', using regexp-opt-depth instead of fixed numbers. + fixed a bug in `spice-uncomment-region', should work now for multi-level comments (more than one '*'). Fix taken from cc-mode. + added output spice-mode handling for eldo output files (.chi) and hspice output files (.spout). When loading from input deck buffer a number of extensions are tried, as is specified in the `spice-output-filenames-alist' list. Included this feature in the mode description. + added msb fix as in cperl-mode.el: if using msb, add a Spice decks category + added Eldo-RF support: keywords highlighting, sources, ... + added `spice-match-string-no-properties' compatibility layer function for xemacs/emacs differences handling. + fixed a bug in detecting when a speedbar is alive, to correctly display the state in the Speedbar setting menu entry. + fixed numerous typing errors. + improved submode dependent menu activation + added fft analysis to hspice submode + added `spice-compile' wrapper function around compile function to handle simulator name correctly when renaming a buffer and then simulating it. Also replaced the menu entry in the Simulate menu. + modified `spice-set-simulator-command' to handle file-less buffers, and also (by using the spice-compile wrapper) recalculate the simulator command every time a simulation is started. This solves problems when decks are renamed and subsequently simulated. + removed obsolete `spice-comment-uncomment-region' function. + removed useless :initialize tags (lambda spice-custom-set functions) in many defcustoms + added automatic initialization of empty spice decks as per eldo-mode, with an extra: you can specify an init function to do everything yourself. Completely customizable (`spice-initialize-empty-file', `spice-initialize-file', `spice-initialize-template-file', `spice-default-header', `spice-initialize-file-function'). Compatibility with eldo-mode. + added waveform viewer interface. Beta for now, implementation may change! So beware when customizing these variables and upgrading later on. Also added menu entry Waveform viewer, which is largely a copy of Simulate. Waveform viewer available now include Nutmeg, Gwave, Xelga and Awaves (check the comment in the spice-mode.el for awaves, it requires a fix to the awaves script to work correctly). + added miscellaneous key bindings for: running a waveform viewer, loading the output file, loading all included files, (un)commenting regions, deleting of indentation, etc. + added a spice-library extent to the library links to distinguish them from other extents in the buffer. + refined the error message of `spice-load-file-at-mouse' when trying to load a non-readable file. + refined the changelog entries to be identifiable/distinguishable from really commented out sections of the files. Changelog is documentation, not comment ! This is used by the comment region hiding/unhiding functionality. + added templates for layla devices: resistor, capacitor, inductor, diode and mosfet. Also added abbrevs for these devices (using the 'l' letter) and menu entries. + made menu sensitivity in general more accurate by checking for buffers that are readonly... + added menu entries in Edit submenu: fill paragraph, join line, load included or lib files, load output file, create .guess/nodeset file, replace with .guess/nodeset statements, hide/unhide commented regions. + moved `spice-update-mode-menu' function into the menu section. + modified the syntax entries of ?\n, ?\", ?< and ?>. Avoided problems with font-locking by specifying that a ?\" is not a string delimiter there. + fixed `spice-mode-map' creation as explained in major mode info file + refined emacs/xemacs handling in pushing the mark after a search command in `spice-visit-subckt-def'. + added `spice-load-include-files' which loads all files that are included in the current deck. Use this to quickly load all files related to the current simulation job. + added hiding/unhiding of commented out regions. This code is also beta, the functionality or interface might change/be removed etc. + adapted `set-spice-name' to include extra functionality in the mode line (output file mode, comment hiding). + added `spice-comment-indent-new-line' function to handle context sensitive prefix setting in auto-fill mode. + added Index menu to menubar in spice-mode. Controlled by a customization variable. + Show describe mode on first use of spice-mode. Controlled by a customization variable. Not trying to nag the user, but maybe it does ? + cleaned up the lisp/string formatting at various places in the code. Release 1.0 (9 May 2001) =========== + first public release