diff options
| author | Dan Nicolaescu | 2008-03-20 06:15:05 +0000 |
|---|---|---|
| committer | Dan Nicolaescu | 2008-03-20 06:15:05 +0000 |
| commit | 6b189a3222705f6a0604b415cce8d2ab92909394 (patch) | |
| tree | ecc851add0d370678423f6eb1c31e3fcc6ab27e1 /lisp | |
| parent | f5406197143220f0cd39150abf896294d7315448 (diff) | |
| download | emacs-6b189a3222705f6a0604b415cce8d2ab92909394.tar.gz emacs-6b189a3222705f6a0604b415cce8d2ab92909394.zip | |
(verilog-easy-menu-filter): New function.
(verilog-stmt-menu, verilog-menu): Add :help.
(verilog-customize, verilog-font-customize)
(electric-verilog-backward-sexp, electric-verilog-forward-sexp)
(verilog-mode): Update documentation strings to match tool tips.
(verilog-auto-search-do, verilog-auto-re-search-do)
(verilog-skip-forward-comment-or-string): Fix verilog-auto
expansion when a .* appears inside a string.
(verilog-re-search-forward, verilog-re-search-backward): Add
comment to recall how this works.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 14 | ||||
| -rw-r--r-- | lisp/progmodes/verilog-mode.el | 402 |
2 files changed, 263 insertions, 153 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index eaa74241064..fba2d6a3aef 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,17 @@ | |||
| 1 | 2008-03-19 Wilson Snyder <wsnyder@wsnyder.org> | ||
| 2 | |||
| 3 | * progmodes/verilog-mode.el (verilog-easy-menu-filter): New | ||
| 4 | function. | ||
| 5 | (verilog-stmt-menu, verilog-menu): Add :help. | ||
| 6 | (verilog-customize, verilog-font-customize) | ||
| 7 | (electric-verilog-backward-sexp, electric-verilog-forward-sexp) | ||
| 8 | (verilog-mode): Update documentation strings to match tool tips. | ||
| 9 | (verilog-auto-search-do, verilog-auto-re-search-do) | ||
| 10 | (verilog-skip-forward-comment-or-string): Fix verilog-auto | ||
| 11 | expansion when a .* appears inside a string. | ||
| 12 | (verilog-re-search-forward, verilog-re-search-backward): Add | ||
| 13 | comment to recall how this works. | ||
| 14 | |||
| 1 | 2008-03-19 Reiner Steib <Reiner.Steib@gmx.de> | 15 | 2008-03-19 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 16 | ||
| 3 | * net/tls.el (open-tls-stream): Reindent. | 17 | * net/tls.el (open-tls-stream): Reindent. |
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 40da7e14f0b..0afc4b8dc71 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el | |||
| @@ -257,13 +257,35 @@ STRING should be given if the last search was by `string-match' on STRING." | |||
| 257 | "Call 'regexp-opt' with word delimiters for the words A." | 257 | "Call 'regexp-opt' with word delimiters for the words A." |
| 258 | (concat "\\<" (verilog-regexp-opt a t) "\\>"))) | 258 | (concat "\\<" (verilog-regexp-opt a t) "\\>"))) |
| 259 | 259 | ||
| 260 | (defun verilog-easy-menu-filter (menu) | ||
| 261 | "Filter a easy-menu-define to support new features." | ||
| 262 | (cond ((not (featurep 'xemacs)) | ||
| 263 | menu) ;; GNU Emacs - passthru | ||
| 264 | ;; Xemacs doesn't support :help. Strip it. | ||
| 265 | ;; Recursively filter the a submenu | ||
| 266 | ((listp menu) | ||
| 267 | (mapcar 'verilog-easy-menu-filter menu)) | ||
| 268 | ;; Look for [:help "blah"] and remove | ||
| 269 | ((vectorp menu) | ||
| 270 | (let ((i 0) (out [])) | ||
| 271 | (while (< i (length menu)) | ||
| 272 | (if (equal `:help (aref menu i)) | ||
| 273 | (setq i (+ 2 i)) | ||
| 274 | (setq out (vconcat out (vector (aref menu i))) | ||
| 275 | i (1+ i)))) | ||
| 276 | out)) | ||
| 277 | (t menu))) ;; Default - ok | ||
| 278 | ;;(verilog-easy-menu-filter | ||
| 279 | ;; `("Verilog" ("MA" ["SAA" nil :help "Help SAA"] ["SAB" nil :help "Help SAA"]) | ||
| 280 | ;; "----" ["MB" nil :help "Help MB"])) | ||
| 281 | |||
| 260 | (defun verilog-customize () | 282 | (defun verilog-customize () |
| 261 | "Link to customize screen for Verilog." | 283 | "Customize variables and other settings used by Verilog-Mode." |
| 262 | (interactive) | 284 | (interactive) |
| 263 | (customize-group 'verilog-mode)) | 285 | (customize-group 'verilog-mode)) |
| 264 | 286 | ||
| 265 | (defun verilog-font-customize () | 287 | (defun verilog-font-customize () |
| 266 | "Link to customize fonts used for Verilog." | 288 | "Customize fonts used by Verilog-Mode." |
| 267 | (interactive) | 289 | (interactive) |
| 268 | (if (fboundp 'customize-apropos) | 290 | (if (fboundp 'customize-apropos) |
| 269 | (customize-apropos "font-lock-*" 'faces))) | 291 | (customize-apropos "font-lock-*" 'faces))) |
| @@ -962,137 +984,219 @@ If set will become buffer local.") | |||
| 962 | ;; menus | 984 | ;; menus |
| 963 | (easy-menu-define | 985 | (easy-menu-define |
| 964 | verilog-menu verilog-mode-map "Menu for Verilog mode" | 986 | verilog-menu verilog-mode-map "Menu for Verilog mode" |
| 965 | `("Verilog" | 987 | '("Verilog" |
| 966 | ("Choose Compilation Action" | 988 | ("Choose Compilation Action" |
| 967 | ["None" | 989 | ["None" |
| 968 | (progn | 990 | (progn |
| 969 | (setq verilog-tool nil) | 991 | (setq verilog-tool nil) |
| 970 | (verilog-set-compile-command)) | 992 | (verilog-set-compile-command)) |
| 971 | :style radio | 993 | :style radio |
| 972 | :selected (equal verilog-tool nil)] | 994 | :selected (equal verilog-tool nil) |
| 973 | ["Lint" | 995 | :help "When invoking compilation, use compile-command"] |
| 974 | (progn | 996 | ["Lint" |
| 975 | (setq verilog-tool 'verilog-linter) | 997 | (progn |
| 976 | (verilog-set-compile-command)) | 998 | (setq verilog-tool 'verilog-linter) |
| 977 | :style radio | 999 | (verilog-set-compile-command)) |
| 978 | :selected (equal verilog-tool `verilog-linter)] | 1000 | :style radio |
| 979 | ["Coverage" | 1001 | :selected (equal verilog-tool `verilog-linter) |
| 980 | (progn | 1002 | :help "When invoking compilation, use lint checker"] |
| 981 | (setq verilog-tool 'verilog-coverage) | 1003 | ["Coverage" |
| 982 | (verilog-set-compile-command)) | 1004 | (progn |
| 983 | :style radio | 1005 | (setq verilog-tool 'verilog-coverage) |
| 984 | :selected (equal verilog-tool `verilog-coverage)] | 1006 | (verilog-set-compile-command)) |
| 985 | ["Simulator" | 1007 | :style radio |
| 986 | (progn | 1008 | :selected (equal verilog-tool `verilog-coverage) |
| 987 | (setq verilog-tool 'verilog-simulator) | 1009 | :help "When invoking compilation, annotate for coverage"] |
| 988 | (verilog-set-compile-command)) | 1010 | ["Simulator" |
| 989 | :style radio | 1011 | (progn |
| 990 | :selected (equal verilog-tool `verilog-simulator)] | 1012 | (setq verilog-tool 'verilog-simulator) |
| 991 | ["Compiler" | 1013 | (verilog-set-compile-command)) |
| 992 | (progn | 1014 | :style radio |
| 993 | (setq verilog-tool 'verilog-compiler) | 1015 | :selected (equal verilog-tool `verilog-simulator) |
| 994 | (verilog-set-compile-command)) | 1016 | :help "When invoking compilation, interpret Verilog source"] |
| 995 | :style radio | 1017 | ["Compiler" |
| 996 | :selected (equal verilog-tool `verilog-compiler)] | 1018 | (progn |
| 997 | ) | 1019 | (setq verilog-tool 'verilog-compiler) |
| 998 | ("Move" | 1020 | (verilog-set-compile-command)) |
| 999 | ["Beginning of function" verilog-beg-of-defun | 1021 | :style radio |
| 1000 | :keys "C-M-a"] | 1022 | :selected (equal verilog-tool `verilog-compiler) |
| 1001 | ["End of function" verilog-end-of-defun | 1023 | :help "When invoking compilation, compile Verilog source"] |
| 1002 | :keys "C-M-e"] | 1024 | ) |
| 1003 | ["Mark function" verilog-mark-defun | 1025 | ("Move" |
| 1004 | :keys "C-M-h"] | 1026 | ["Beginning of function" verilog-beg-of-defun |
| 1005 | ["Goto function/module" verilog-goto-defun t] | 1027 | :keys "C-M-a" |
| 1006 | ["Move to beginning of block" electric-verilog-backward-sexp t] | 1028 | :help "Move backward to the beginning of the current function or procedure"] |
| 1007 | ["Move to end of block" electric-verilog-forward-sexp t] | 1029 | ["End of function" verilog-end-of-defun |
| 1008 | ) | 1030 | :keys "C-M-e" |
| 1009 | ("Comments" | 1031 | :help "Move forward to the end of the current function or procedure"] |
| 1010 | ["Comment Region" verilog-comment-region t] | 1032 | ["Mark function" verilog-mark-defun |
| 1011 | ["UnComment Region" verilog-uncomment-region t] | 1033 | :keys "C-M-h" |
| 1012 | ["Multi-line comment insert" verilog-star-comment t] | 1034 | :help "Mark the current Verilog function or procedure"] |
| 1013 | ["Lint error to comment" verilog-lint-off t] | 1035 | ["Goto function/module" verilog-goto-defun |
| 1014 | ) | 1036 | :help "Move to specified Verilog module/task/function"] |
| 1015 | "----" | 1037 | ["Move to beginning of block" electric-verilog-backward-sexp |
| 1016 | ["Compile" compile t] | 1038 | :help "Move backward over one balanced expression"] |
| 1017 | ["AUTO, Save, Compile" verilog-auto-save-compile t] | 1039 | ["Move to end of block" electric-verilog-forward-sexp |
| 1018 | ["Next Compile Error" next-error t] | 1040 | :help "Move forward over one balanced expression"] |
| 1019 | ["Ignore Lint Warning at point" verilog-lint-off t] | 1041 | ) |
| 1020 | "----" | 1042 | ("Comments" |
| 1021 | ["Line up declarations around point" verilog-pretty-declarations t] | 1043 | ["Comment Region" verilog-comment-region |
| 1022 | ["Line up equations around point" verilog-pretty-expr t] | 1044 | :help "Put marked area into a comment"] |
| 1023 | ["Redo/insert comments on every end" verilog-label-be t] | 1045 | ["UnComment Region" verilog-uncomment-region |
| 1024 | ["Expand [x:y] vector line" verilog-expand-vector t] | 1046 | :help "Uncomment an area commented with Comment Region"] |
| 1025 | ["Insert begin-end block" verilog-insert-block t] | 1047 | ["Multi-line comment insert" verilog-star-comment |
| 1026 | ["Complete word" verilog-complete-word t] | 1048 | :help "Insert Verilog /* */ comment at point"] |
| 1027 | "----" | 1049 | ["Lint error to comment" verilog-lint-off |
| 1028 | ["Recompute AUTOs" verilog-auto t] | 1050 | :help "Convert a Verilog linter warning line into a disable statement"] |
| 1029 | ["Kill AUTOs" verilog-delete-auto t] | 1051 | ) |
| 1030 | ["Inject AUTOs" verilog-inject-auto t] | 1052 | "----" |
| 1031 | ("AUTO Help..." | 1053 | ["Compile" compile |
| 1032 | ["AUTO General" (describe-function 'verilog-auto) t] | 1054 | :help "Perform compilation-action (above) on the current buffer"] |
| 1033 | ["AUTO Library Flags" (describe-variable 'verilog-library-flags) t] | 1055 | ["AUTO, Save, Compile" verilog-auto-save-compile |
| 1034 | ["AUTO Library Path" (describe-variable 'verilog-library-directories) t] | 1056 | :help "Recompute AUTOs, save buffer, and compile"] |
| 1035 | ["AUTO Library Files" (describe-variable 'verilog-library-files) t] | 1057 | ["Next Compile Error" next-error |
| 1036 | ["AUTO Library Extensions" (describe-variable 'verilog-library-extensions) t] | 1058 | :help "Visit next compilation error message and corresponding source code"] |
| 1037 | ["AUTO `define Reading" (describe-function 'verilog-read-defines) t] | 1059 | ["Ignore Lint Warning at point" verilog-lint-off |
| 1038 | ["AUTO `include Reading" (describe-function 'verilog-read-includes) t] | 1060 | :help "Convert a Verilog linter warning line into a disable statement"] |
| 1039 | ["AUTOARG" (describe-function 'verilog-auto-arg) t] | 1061 | "----" |
| 1040 | ["AUTOASCIIENUM" (describe-function 'verilog-auto-ascii-enum) t] | 1062 | ["Line up declarations around point" verilog-pretty-declarations |
| 1041 | ["AUTOINOUTMODULE" (describe-function 'verilog-auto-inout-module) t] | 1063 | :help "Line up declarations around point"] |
| 1042 | ["AUTOINOUT" (describe-function 'verilog-auto-inout) t] | 1064 | ["Line up equations around point" verilog-pretty-expr |
| 1043 | ["AUTOINPUT" (describe-function 'verilog-auto-input) t] | 1065 | :help "Line up expressions around point"] |
| 1044 | ["AUTOINST" (describe-function 'verilog-auto-inst) t] | 1066 | ["Redo/insert comments on every end" verilog-label-be |
| 1045 | ["AUTOINST (.*)" (describe-function 'verilog-auto-star) t] | 1067 | :help "Label matching begin ... end statements"] |
| 1046 | ["AUTOINSTPARAM" (describe-function 'verilog-auto-inst-param) t] | 1068 | ["Expand [x:y] vector line" verilog-expand-vector |
| 1047 | ["AUTOOUTPUT" (describe-function 'verilog-auto-output) t] | 1069 | :help "Take a signal vector on the current line and expand it to multiple lines"] |
| 1048 | ["AUTOOUTPUTEVERY" (describe-function 'verilog-auto-output-every) t] | 1070 | ["Insert begin-end block" verilog-insert-block |
| 1049 | ["AUTOREG" (describe-function 'verilog-auto-reg) t] | 1071 | :help "Insert begin ... end"] |
| 1050 | ["AUTOREGINPUT" (describe-function 'verilog-auto-reg-input) t] | 1072 | ["Complete word" verilog-complete-word |
| 1051 | ["AUTORESET" (describe-function 'verilog-auto-reset) t] | 1073 | :help "Complete word at point"] |
| 1052 | ["AUTOSENSE" (describe-function 'verilog-auto-sense) t] | 1074 | "----" |
| 1053 | ["AUTOTIEOFF" (describe-function 'verilog-auto-tieoff) t] | 1075 | ["Recompute AUTOs" verilog-auto |
| 1054 | ["AUTOUNUSED" (describe-function 'verilog-auto-unused) t] | 1076 | :help "Expand AUTO meta-comment statements"] |
| 1055 | ["AUTOWIRE" (describe-function 'verilog-auto-wire) t] | 1077 | ["Kill AUTOs" verilog-delete-auto |
| 1056 | ) | 1078 | :help "Remove AUTO expansions"] |
| 1057 | "----" | 1079 | ["Inject AUTOs" verilog-inject-auto |
| 1058 | ["Submit bug report" verilog-submit-bug-report t] | 1080 | :help "Inject AUTOs into legacy non-AUTO buffer"] |
| 1059 | ["Version and FAQ" verilog-faq t] | 1081 | ("AUTO Help..." |
| 1060 | ["Customize Verilog Mode..." verilog-customize t] | 1082 | ["AUTO General" (describe-function 'verilog-auto) |
| 1061 | ["Customize Verilog Fonts & Colors" verilog-font-customize t])) | 1083 | :help "Help introduction on AUTOs"] |
| 1084 | ["AUTO Library Flags" (describe-variable 'verilog-library-flags) | ||
| 1085 | :help "Help on verilog-library-flags"] | ||
| 1086 | ["AUTO Library Path" (describe-variable 'verilog-library-directories) | ||
| 1087 | :help "Help on verilog-library-directories"] | ||
| 1088 | ["AUTO Library Files" (describe-variable 'verilog-library-files) | ||
| 1089 | :help "Help on verilog-library-files"] | ||
| 1090 | ["AUTO Library Extensions" (describe-variable 'verilog-library-extensions) | ||
| 1091 | :help "Help on verilog-library-extensions"] | ||
| 1092 | ["AUTO `define Reading" (describe-function 'verilog-read-defines) | ||
| 1093 | :help "Help on reading `defines"] | ||
| 1094 | ["AUTO `include Reading" (describe-function 'verilog-read-includes) | ||
| 1095 | :help "Help on parsing `includes"] | ||
| 1096 | ["AUTOARG" (describe-function 'verilog-auto-arg) | ||
| 1097 | :help "Help on AUTOARG - declaring module port list"] | ||
| 1098 | ["AUTOASCIIENUM" (describe-function 'verilog-auto-ascii-enum) | ||
| 1099 | :help "Help on AUTOASCIIENUM - creating ASCII for enumerations"] | ||
| 1100 | ["AUTOINOUTMODULE" (describe-function 'verilog-auto-inout-module) | ||
| 1101 | :help "Help on AUTOINOUTMODULE - copying i/o from another file"] | ||
| 1102 | ["AUTOINOUT" (describe-function 'verilog-auto-inout) | ||
| 1103 | :help "Help on AUTOINOUT - adding inouts from cells"] | ||
| 1104 | ["AUTOINPUT" (describe-function 'verilog-auto-input) | ||
| 1105 | :help "Help on AUTOINPUT - adding inputs from cells"] | ||
| 1106 | ["AUTOINST" (describe-function 'verilog-auto-inst) | ||
| 1107 | :help "Help on AUTOINST - adding pins for cells"] | ||
| 1108 | ["AUTOINST (.*)" (describe-function 'verilog-auto-star) | ||
| 1109 | :help "Help on expanding Verilog-2001 .* pins"] | ||
| 1110 | ["AUTOINSTPARAM" (describe-function 'verilog-auto-inst-param) | ||
| 1111 | :help "Help on AUTOINSTPARAM - adding parameter pins to cells"] | ||
| 1112 | ["AUTOOUTPUT" (describe-function 'verilog-auto-output) | ||
| 1113 | :help "Help on AUTOOUTPUT - adding outputs from cells"] | ||
| 1114 | ["AUTOOUTPUTEVERY" (describe-function 'verilog-auto-output-every) | ||
| 1115 | :help "Help on AUTOOUTPUTEVERY - adding outputs of all signals"] | ||
| 1116 | ["AUTOREG" (describe-function 'verilog-auto-reg) | ||
| 1117 | :help "Help on AUTOREG - declaring registers for non-wires"] | ||
| 1118 | ["AUTOREGINPUT" (describe-function 'verilog-auto-reg-input) | ||
| 1119 | :help "Help on AUTOREGINPUT - declaring inputs for non-wires"] | ||
| 1120 | ["AUTORESET" (describe-function 'verilog-auto-reset) | ||
| 1121 | :help "Help on AUTORESET - resetting always blocks"] | ||
| 1122 | ["AUTOSENSE" (describe-function 'verilog-auto-sense) | ||
| 1123 | :help "Help on AUTOSENSE - sensitivity lists for always blocks"] | ||
| 1124 | ["AUTOTIEOFF" (describe-function 'verilog-auto-tieoff) | ||
| 1125 | :help "Help on AUTOTIEOFF - tieing off unused outputs"] | ||
| 1126 | ["AUTOUNUSED" (describe-function 'verilog-auto-unused) | ||
| 1127 | :help "Help on AUTOUNUSED - terminating unused inputs"] | ||
| 1128 | ["AUTOWIRE" (describe-function 'verilog-auto-wire) | ||
| 1129 | :help "Help on AUTOWIRE - declaring wires for cells"] | ||
| 1130 | ) | ||
| 1131 | "----" | ||
| 1132 | ["Submit bug report" verilog-submit-bug-report | ||
| 1133 | :help "Submit via mail a bug report on verilog-mode.el"] | ||
| 1134 | ["Version and FAQ" verilog-faq | ||
| 1135 | :help "Show the current version, and where to get the FAQ etc"] | ||
| 1136 | ["Customize Verilog Mode..." verilog-customize | ||
| 1137 | :help "Customize variables and other settings used by Verilog-Mode"] | ||
| 1138 | ["Customize Verilog Fonts & Colors" verilog-font-customize | ||
| 1139 | :help "Customize fonts used by Verilog-Mode."])) | ||
| 1062 | 1140 | ||
| 1063 | (easy-menu-define | 1141 | (easy-menu-define |
| 1064 | verilog-stmt-menu verilog-mode-map "Menu for statement templates in Verilog." | 1142 | verilog-stmt-menu verilog-mode-map "Menu for statement templates in Verilog." |
| 1065 | '("Statements" | 1143 | '("Statements" |
| 1066 | ["Header" verilog-sk-header t] | 1144 | ["Header" verilog-sk-header |
| 1067 | ["Comment" verilog-sk-comment t] | 1145 | :help "Insert a header block at the top of file"] |
| 1068 | "----" | 1146 | ["Comment" verilog-sk-comment |
| 1069 | ["Module" verilog-sk-module t] | 1147 | :help "Insert a comment block"] |
| 1070 | ["Primitive" verilog-sk-primitive t] | 1148 | "----" |
| 1071 | "----" | 1149 | ["Module" verilog-sk-module |
| 1072 | ["Input" verilog-sk-input t] | 1150 | :help "Insert a module .. (/*AUTOARG*/);.. endmodule block"] |
| 1073 | ["Output" verilog-sk-output t] | 1151 | ["Primitive" verilog-sk-primitive |
| 1074 | ["Inout" verilog-sk-inout t] | 1152 | :help "Insert a primitive .. (.. );.. endprimitive block"] |
| 1075 | ["Wire" verilog-sk-wire t] | 1153 | "----" |
| 1076 | ["Reg" verilog-sk-reg t] | 1154 | ["Input" verilog-sk-input |
| 1077 | ["Define thing under point as a register" verilog-sk-define-signal t] | 1155 | :help "Insert an input declaration"] |
| 1078 | "----" | 1156 | ["Output" verilog-sk-output |
| 1079 | ["Initial" verilog-sk-initial t] | 1157 | :help "Insert an output declaration"] |
| 1080 | ["Always" verilog-sk-always t] | 1158 | ["Inout" verilog-sk-inout |
| 1081 | ["Function" verilog-sk-function t] | 1159 | :help "Insert an inout declaration"] |
| 1082 | ["Task" verilog-sk-task t] | 1160 | ["Wire" verilog-sk-wire |
| 1083 | ["Specify" verilog-sk-specify t] | 1161 | :help "Insert a wire declaration"] |
| 1084 | ["Generate" verilog-sk-generate t] | 1162 | ["Reg" verilog-sk-reg |
| 1085 | "----" | 1163 | :help "Insert a register declaration"] |
| 1086 | ["Begin" verilog-sk-begin t] | 1164 | ["Define thing under point as a register" verilog-sk-define-signal |
| 1087 | ["If" verilog-sk-if t] | 1165 | :help "Define signal under point as a register at the top of the module"] |
| 1088 | ["(if) else" verilog-sk-else-if t] | 1166 | "----" |
| 1089 | ["For" verilog-sk-for t] | 1167 | ["Initial" verilog-sk-initial |
| 1090 | ["While" verilog-sk-while t] | 1168 | :help "Insert an initial begin .. end block"] |
| 1091 | ["Fork" verilog-sk-fork t] | 1169 | ["Always" verilog-sk-always |
| 1092 | ["Repeat" verilog-sk-repeat t] | 1170 | :help "Insert an always @(AS) begin .. end block"] |
| 1093 | ["Case" verilog-sk-case t] | 1171 | ["Function" verilog-sk-function |
| 1094 | ["Casex" verilog-sk-casex t] | 1172 | :help "Insert a function .. begin .. end endfunction block"] |
| 1095 | ["Casez" verilog-sk-casez t])) | 1173 | ["Task" verilog-sk-task |
| 1174 | :help "Insert a task .. begin .. end endtask block"] | ||
| 1175 | ["Specify" verilog-sk-specify | ||
| 1176 | :help "Insert a specify .. endspecify block"] | ||
| 1177 | ["Generate" verilog-sk-generate | ||
| 1178 | :help "Insert a generate .. endgenerate block"] | ||
| 1179 | "----" | ||
| 1180 | ["Begin" verilog-sk-begin | ||
| 1181 | :help "Insert a begin .. end block"] | ||
| 1182 | ["If" verilog-sk-if | ||
| 1183 | :help "Insert an if (..) begin .. end block"] | ||
| 1184 | ["(if) else" verilog-sk-else-if | ||
| 1185 | :help "Insert an else if (..) begin .. end block"] | ||
| 1186 | ["For" verilog-sk-for | ||
| 1187 | :help "Insert a for (...) begin .. end block"] | ||
| 1188 | ["While" verilog-sk-while | ||
| 1189 | :help "Insert a while (...) begin .. end block"] | ||
| 1190 | ["Fork" verilog-sk-fork | ||
| 1191 | :help "Insert a fork begin .. end .. join block"] | ||
| 1192 | ["Repeat" verilog-sk-repeat | ||
| 1193 | :help "Insert a repeat (..) begin .. end block"] | ||
| 1194 | ["Case" verilog-sk-case | ||
| 1195 | :help "Insert a case block, prompting for details"] | ||
| 1196 | ["Casex" verilog-sk-casex | ||
| 1197 | :help "Insert a casex (...) item: begin.. end endcase block"] | ||
| 1198 | ["Casez" verilog-sk-casez | ||
| 1199 | :help "Insert a casez (...) item: begin.. end endcase block"])) | ||
| 1096 | 1200 | ||
| 1097 | (defvar verilog-mode-abbrev-table nil | 1201 | (defvar verilog-mode-abbrev-table nil |
| 1098 | "Abbrev table in use in Verilog-mode buffers.") | 1202 | "Abbrev table in use in Verilog-mode buffers.") |
| @@ -1125,7 +1229,7 @@ will break, as the o's continuously replace. xa -> x works ok though." | |||
| 1125 | (defsubst verilog-re-search-forward (REGEXP BOUND NOERROR) | 1229 | (defsubst verilog-re-search-forward (REGEXP BOUND NOERROR) |
| 1126 | ; checkdoc-params: (REGEXP BOUND NOERROR) | 1230 | ; checkdoc-params: (REGEXP BOUND NOERROR) |
| 1127 | "Like `re-search-forward', but skips over match in comments or strings." | 1231 | "Like `re-search-forward', but skips over match in comments or strings." |
| 1128 | (store-match-data '(nil nil)) | 1232 | (store-match-data '(nil nil)) ;; So match-end will return nil if no matches found |
| 1129 | (while (and | 1233 | (while (and |
| 1130 | (re-search-forward REGEXP BOUND NOERROR) | 1234 | (re-search-forward REGEXP BOUND NOERROR) |
| 1131 | (and (verilog-skip-forward-comment-or-string) | 1235 | (and (verilog-skip-forward-comment-or-string) |
| @@ -1139,7 +1243,7 @@ will break, as the o's continuously replace. xa -> x works ok though." | |||
| 1139 | (defsubst verilog-re-search-backward (REGEXP BOUND NOERROR) | 1243 | (defsubst verilog-re-search-backward (REGEXP BOUND NOERROR) |
| 1140 | ; checkdoc-params: (REGEXP BOUND NOERROR) | 1244 | ; checkdoc-params: (REGEXP BOUND NOERROR) |
| 1141 | "Like `re-search-backward', but skips over match in comments or strings." | 1245 | "Like `re-search-backward', but skips over match in comments or strings." |
| 1142 | (store-match-data '(nil nil)) | 1246 | (store-match-data '(nil nil)) ;; So match-end will return nil if no matches found |
| 1143 | (while (and | 1247 | (while (and |
| 1144 | (re-search-backward REGEXP BOUND NOERROR) | 1248 | (re-search-backward REGEXP BOUND NOERROR) |
| 1145 | (and (verilog-skip-backward-comment-or-string) | 1249 | (and (verilog-skip-backward-comment-or-string) |
| @@ -2004,13 +2108,13 @@ Use filename, if current buffer being edited shorten to just buffer name." | |||
| 2004 | ":" (int-to-string (count-lines (point-min) (or pointnum (point)))))) | 2108 | ":" (int-to-string (count-lines (point-min) (or pointnum (point)))))) |
| 2005 | 2109 | ||
| 2006 | (defun electric-verilog-backward-sexp () | 2110 | (defun electric-verilog-backward-sexp () |
| 2007 | "Move backward over a sexp." | 2111 | "Move backward over one balanced expression." |
| 2008 | (interactive) | 2112 | (interactive) |
| 2009 | ;; before that see if we are in a comment | 2113 | ;; before that see if we are in a comment |
| 2010 | (verilog-backward-sexp)) | 2114 | (verilog-backward-sexp)) |
| 2011 | 2115 | ||
| 2012 | (defun electric-verilog-forward-sexp () | 2116 | (defun electric-verilog-forward-sexp () |
| 2013 | "Move forward over a sexp." | 2117 | "Move forward over one balanced expression." |
| 2014 | (interactive) | 2118 | (interactive) |
| 2015 | ;; before that see if we are in a comment | 2119 | ;; before that see if we are in a comment |
| 2016 | (verilog-forward-sexp)) | 2120 | (verilog-forward-sexp)) |
| @@ -2308,15 +2412,15 @@ Some other functions are: | |||
| 2308 | 2412 | ||
| 2309 | \\[verilog-comment-region] Put marked area in a comment. | 2413 | \\[verilog-comment-region] Put marked area in a comment. |
| 2310 | \\[verilog-uncomment-region] Uncomment an area commented with \\[verilog-comment-region]. | 2414 | \\[verilog-uncomment-region] Uncomment an area commented with \\[verilog-comment-region]. |
| 2311 | \\[verilog-insert-block] Insert begin ... end;. | 2415 | \\[verilog-insert-block] Insert begin ... end. |
| 2312 | \\[verilog-star-comment] Insert /* ... */. | 2416 | \\[verilog-star-comment] Insert /* ... */. |
| 2313 | 2417 | ||
| 2314 | \\[verilog-sk-always] Insert a always @(AS) begin .. end block. | 2418 | \\[verilog-sk-always] Insert an always @(AS) begin .. end block. |
| 2315 | \\[verilog-sk-begin] Insert a begin .. end block. | 2419 | \\[verilog-sk-begin] Insert a begin .. end block. |
| 2316 | \\[verilog-sk-case] Insert a case block, prompting for details. | 2420 | \\[verilog-sk-case] Insert a case block, prompting for details. |
| 2317 | \\[verilog-sk-for] Insert a for (...) begin .. end block, prompting for details. | 2421 | \\[verilog-sk-for] Insert a for (...) begin .. end block, prompting for details. |
| 2318 | \\[verilog-sk-generate] Insert a generate .. endgenerate block. | 2422 | \\[verilog-sk-generate] Insert a generate .. endgenerate block. |
| 2319 | \\[verilog-sk-header] Insert a nice header block at the top of file. | 2423 | \\[verilog-sk-header] Insert a header block at the top of file. |
| 2320 | \\[verilog-sk-initial] Insert an initial begin .. end block. | 2424 | \\[verilog-sk-initial] Insert an initial begin .. end block. |
| 2321 | \\[verilog-sk-fork] Insert a fork begin .. end .. join block. | 2425 | \\[verilog-sk-fork] Insert a fork begin .. end .. join block. |
| 2322 | \\[verilog-sk-module] Insert a module .. (/*AUTOARG*/);.. endmodule block. | 2426 | \\[verilog-sk-module] Insert a module .. (/*AUTOARG*/);.. endmodule block. |
| @@ -4424,7 +4528,7 @@ Optional BOUND limits search." | |||
| 4424 | (parse-partial-sexp (point-min) (point))))) | 4528 | (parse-partial-sexp (point-min) (point))))) |
| 4425 | (cond | 4529 | (cond |
| 4426 | ((nth 3 state) ;Inside string | 4530 | ((nth 3 state) ;Inside string |
| 4427 | (goto-char (nth 3 state)) | 4531 | (search-forward "\"") |
| 4428 | t) | 4532 | t) |
| 4429 | ((nth 7 state) ;Inside // comment | 4533 | ((nth 7 state) ;Inside // comment |
| 4430 | (forward-line 1) | 4534 | (forward-line 1) |
| @@ -6280,7 +6384,7 @@ Outputs comments above subcell signals, for example: | |||
| 6280 | ;; below 3 modified by verilog-read-sub-decls-line | 6384 | ;; below 3 modified by verilog-read-sub-decls-line |
| 6281 | sigs-out sigs-inout sigs-in) | 6385 | sigs-out sigs-inout sigs-in) |
| 6282 | (verilog-beg-of-defun) | 6386 | (verilog-beg-of-defun) |
| 6283 | (while (re-search-forward "\\(/\\*AUTOINST\\*/\\|\\.\\*\\)" end-mod-point t) | 6387 | (while (verilog-re-search-forward "\\(/\\*AUTOINST\\*/\\|\\.\\*\\)" end-mod-point t) |
| 6284 | (save-excursion | 6388 | (save-excursion |
| 6285 | (goto-char (match-beginning 0)) | 6389 | (goto-char (match-beginning 0)) |
| 6286 | (unless (verilog-inside-comment-p) | 6390 | (unless (verilog-inside-comment-p) |
| @@ -7297,23 +7401,15 @@ and invalidating the cache." | |||
| 7297 | ;; Auto creation utilities | 7401 | ;; Auto creation utilities |
| 7298 | ;; | 7402 | ;; |
| 7299 | 7403 | ||
| 7300 | (defun verilog-auto-search-do (search-for func) | 7404 | (defun verilog-auto-re-search-do (search-for func) |
| 7301 | "Search for the given auto text SEARCH-FOR, and perform FUNC where it occurs." | 7405 | "Search for the given auto text regexp SEARCH-FOR, and perform FUNC where it occurs." |
| 7302 | (goto-char (point-min)) | 7406 | (goto-char (point-min)) |
| 7303 | (while (search-forward search-for nil t) | 7407 | (while (verilog-re-search-forward search-for nil t) |
| 7304 | (if (not (save-excursion | 7408 | (funcall func))) |
| 7305 | (goto-char (match-beginning 0)) | ||
| 7306 | (verilog-inside-comment-p))) | ||
| 7307 | (funcall func)))) | ||
| 7308 | 7409 | ||
| 7309 | (defun verilog-auto-re-search-do (search-for func) | 7410 | (defun verilog-auto-search-do (search-for func) |
| 7310 | "Search for the given auto text SEARCH-FOR, and perform FUNC where it occurs." | 7411 | "Search for the given auto text SEARCH-FOR, and perform FUNC where it occurs." |
| 7311 | (goto-char (point-min)) | 7412 | (verilog-auto-re-search-do (regexp-quote search-for) func)) |
| 7312 | (while (re-search-forward search-for nil t) | ||
| 7313 | (if (not (save-excursion | ||
| 7314 | (goto-char (match-beginning 0)) | ||
| 7315 | (verilog-inside-comment-p))) | ||
| 7316 | (funcall func)))) | ||
| 7317 | 7413 | ||
| 7318 | (defun verilog-insert-one-definition (sig type indent-pt) | 7414 | (defun verilog-insert-one-definition (sig type indent-pt) |
| 7319 | "Print out a definition for SIG of the given TYPE, | 7415 | "Print out a definition for SIG of the given TYPE, |