
(progn
  (setq fg:white                'fg:white)
  (setq bg:lightmagenta         'bg:lightmagenta)
  (setq d-face-cc-debugging     'd-face-cc-debugging)
  (setq bg:lightgreen           'bg:lightgreen)
  (setq d-face-property-inverse 'd-face-property-inverse)
  (setq d-face-cc-debugging     'd-face-cc-debugging)
  (setq fg:lightmagenta         'fg:lightmagenta)
  (setq fg:lightgreen           'fg:lightgreen)
  (setq fg:lightmagenta         'fg:lightmagenta)
  (setq d-face-property         'd-face-property)
  (setq fg:lightmagenta         'fg:lightmagenta)
  (setq d-face-property         'd-face-property)
  (setq fg:lightmagenta         'fg:lightmagenta)
  (setq fg:lightgreen           'fg:lightgreen)
  (setq fg:lightred             'fg:lightred)
  (setq bg:lightred             'bg:lightred)
  (setq bg:yellow               'bg:yellow)
  )

(add-hook 'font-lock-mode-hook 'd-font-lock-mode-hook--post t)

(defun d-font-lock-mode-hook--post ()

  (when (and prefs-font-xtra-p (or (eq major-mode 'c-mode)
                                   (eq major-mode 'c++-mode)
                                   (eq major-mode 'java-mode)
                                   (eq major-mode 'html-mode)
                                   ))
    (d-font-lock-add-end
     '(
       ("^[ \t]*//.*$"  0 'font-lock-comment-face t)
       ("^[ \t]*///.*$" 0 d-face-super-comment   t)
       )))

  (when t;;(and prefs-font-p prefs-font-xtra-p);; (not noninteractive))
    (when (or (eq major-mode 'c-mode)
              (eq major-mode 'c++-mode)
              (eq major-mode 'java-mode)
              (eq major-mode 'haskell-mode)
              (eq major-mode 'asm-mode)
              (eq major-mode 'html-mode)
              (eq major-mode 'php-mode)
              (eq major-mode 'emacs-lisp-mode)
              (eq major-mode 'lisp-mode)
              (eq major-mode 'prolog-mode)
              (eq major-mode 'makefile-mode)
              (eq major-mode 'pov-mode)
              (eq major-mode 'latex-mode)
              (eq major-mode 'fundamental-mode)
              (eq major-mode 'text-mode)
              (eq major-mode 'compilation-mode)
              (eq major-mode 'wiki-mode)
              (eq major-mode 'jtw-mode)
              (eq major-mode 'css-mode)
              (eq major-mode 'tes-mode)
              (eq major-mode 'c2j-mode)
              (eq major-mode 'sql-mode)
              )
      (d-font-lock-add-end
       '(
         ;; FOO-SAD-FSDF: sadfadf
         ;; NOTE: adfasdfosdf
         ;;("\\([ ]\\|^\\)\\(\\([A-z'-]+[ ]\\)*[A-Z][A-Z0-9.'-]+:\\) \\(.*$\\)"
         ;; (2 d-face-special-reference t) (4 d-face-cc-debugging t)) ;; was fg:white

         ("\\([A-Z][a-zA-Z0-9_]*\\)::" 1 'font-lock-type-face nil)
         ("\\([A-Z]*\\):" (1 fg:white nil))

         ;; QUESTION: hello (not smegged)
         ;;("DUCK" 1 d-face-property t)
         ("\\(\\<BACK ADDED:\\)\\(.*$\\)"                    (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<LIMITATION[-A-Z +]*:\\)\\(.*$\\)"           (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<CODE:\\)\\([A-Z +]*\\)\\(.*$\\)"            (1 bg:lightgreen t) (2 fg:lightgreen t) (3 'default t))
         ("\\(\\<NOT FOUND:\\)\\(.*$\\)"                     (1 bg:lightgreen t) (2 fg:lightgreen t))
         ("\\(\\<DELETE ?ME:\\)\\(.*$\\)"                    (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<FIXED:\\)\\(.*$\\)"                         (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<BURNED:\\)\\(.*$\\)"                        (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<SOLUTION:\\)\\(.*$\\)"                      (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<SEE:\\)\\(.*$\\)"                           (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<NEW[A-Z ]*:\\)\\(.*$\\)"                    (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<COPY:\\)\\(.*$\\)"                          (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<RENAME:\\)\\(.*$\\)"                        (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<PUT:\\)\\(.*$\\)"                           (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<URL:\\)\\(.*$\\)"                           (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<COOL:\\)\\(.*$\\)"                          (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<TOMORROW:\\)\\(.*$\\)"                      (1 d-face-cc-debugging t) (2 fg:lightgreen t))
         ("\\(\\<FAILED[A-Z +]*\\)\\(.*$\\)"                 (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<MISSING[A-Z +]*\\)\\(.*$\\)"                (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<REMOVE ?ME:\\)\\(.*$\\)"                    (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<PUT BACK:\\)\\(.*$\\)"                      (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<NOT DO:\\)\\(.*$\\)"                        (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<TEMP:\\)\\(.*$\\)"                          (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<SEARCH FOR:\\)\\(.*$\\)"                    (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<COMPILE:\\)\\(.*$\\)"                       (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ;;("\\(\\<ADD[A-Z ]*:\\)\\(.*$\\)"                  (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<FIXME[?:!]+\\)\\(.*$\\)"                    (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<BROKEN[-A-Z0-9 .+&/]*[:?]\\)\\(.*$\\)"       (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<TODO[-A-Z0-9 .+&/]*[:?]\\)\\(.*$\\)"         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<TEST[-A-Z0-9 .+]*[:?]\\)\\(.*$\\)"           (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<PULL ?OUT:\\)\\(.*$\\)"                     (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<LATER:\\)\\(.*$\\)"                         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<PROBLEM:\\)\\(.*$\\)"                       (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<CLASH:\\)\\(.*$\\)"                         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ;;("\\(\\<REVERTED[A-Z0-9 .]*:\\)\\(.*$\\)"         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<REVERTED[-A-Z0-9 .+]*:\\)\\(.*$\\)"           (1 d-face-property-inverse t) (2 d-face-property t))

         ("\\(\\<PULLED BACK[-A-Z0-9 .+]*:\\)\\(.*$\\)"        (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<DEBUG[-A-Z0-9 .+]*:\\)\\(.*$\\)"              (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<DEBUGGED[-A-Z0-9 .+]*:\\)\\(.*$\\)"           (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<OKAY[-A-Za-z0-9 +]*:\\)\\(.*$\\)"             (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<HOWTO[-A-Za-z0-9 +]*:\\)\\(.*$\\)"            (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<DOING:\\)\\(.*$\\)"                           (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<ISIN:\\)\\(.*$\\)"                            (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<RESOLVE CLASH:\\)\\(.*$\\)"                   (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<INSTALLED:\\)\\(.*$\\)"                       (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<PATCH[-A-Z0-9 +]*:\\)\\(.*$\\)"               (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<BUG[-A-Z0-9 +]*:\\)\\(.*$\\)"                 (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<WHY[-A-Z0-9 +]*[?:]+\\)\\(.*$\\)"             (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<WHEREIS[-A-Z0-9 +]*[?:]+\\)\\(.*$\\)"         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<PENDING[-A-Z0-9 +]*[?:]+\\)\\(.*$\\)"         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<WTF[-A-Z0-9 +]*[?:]+\\)\\(.*$\\)"             (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<WARNING[-A-Z0-9 +]*[?:]+\\)\\(.*$\\)"         (1 d-face-red-and-yellow t) (2 fg:red t))
         ("\\(\\<ERROR:\\)\\(.*$\\)"                         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<NOT[-a-zA-Z0-9'. +]*:\\)\\(.*$\\)"                         (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<URGENT:\\)\\(.*$\\)"                        (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<REDO:\\)\\(.*$\\)"                          (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<REMOVE:\\)\\(.*$\\)"                        (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<RESOLVE[-A-Z' +]*:\\)\\(.*$\\)"               (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<BUGGER[-A-Z' +]*:\\)\\(.*$\\)"                (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ("\\(\\<TIME[-A-Z +]*[:!?]\\)[ \t]+\\([^\r\n]*\\)"    (1 bg:lightgreen t)   (2 fg:lightgreen t))
         ("\\(\\<MILESTONE[:!?]\\)[ \t]+\\([^\r\n]*\\)"      (1 bg:lightgreen t)   (2 fg:lightgreen t))
         ("\\(\\<QUERY[:!?]\\)[ \t]+\\([^\r\n]*\\)"          (1 bg:lightmagenta t)   (2 fg:lightmagenta t))
         ("\\(\\<BUGFIXED:\\)\\(.*$\\)"                      (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<NOTE[-A-Z0-9 _.+/]*:\\)\\(.*$\\)"              (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<TOTAL[-A-Z0-9 +]*:\\)\\(.*$\\)"               (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<SPLATTED[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"         (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<SEMI[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"             (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<DONE[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"             (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<GOT[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"              (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<ADDED[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"            (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<CHANGED[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"          (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<REMOVED[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"          (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<DOWNLOADED[-A-Z0-9 .&/+]*:\\)\\(.*$\\)"       (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<NOT DONE[-A-Z0-9,. _+]*:\\)\\(.*$\\)"        (1 bg:lightmagenta t) (2 fg:lightmagenta t))
         ;;("\\(\\<SEMI[A-Z0-9 .&/]*:\\)\\(.*$\\)"           (1 d-face-property-inverse t) (2 d-face-property t))
         ("\\(\\<class:\\) \\([-a-zA-Z0-9_.+]*\\)"            (1 'bold t) (2 'font-lock-type-face t))
         ("\\(\\<constructor:\\) \\([-a-zA-Z0-9_.+]*\\)"      (1 'bold t) (2 'font-lock-function-name-face t))
         ("\\(\\<method:\\) \\([-a-zA-Z0-9_.+]*\\)"           (1 'bold t) (2 'font-lock-function-name-face t))
         ("\\(\\<methods:\\) \\(\\([-a-zA-Z0-9_.+]* *\\)*\\)" (1 'bold t) (2 'font-lock-function-name-face t))
         ("\\(\\<function:\\) \\([-a-zA-Z0-9_.+]*\\)"         (1 'bold t) (2 'font-lock-function-name-face t))
         ("\\(\\<variable:\\) \\([-a-zA-Z0-9_.+]*\\)"         (1 'bold t) (2 'font-lock-variable-name-face t))
         ("\\(\\<classVar:\\) \\([-a-zA-Z0-9_.+]*\\)"         (1 'bold t) (2 'font-lock-variable-name-face t))
         ("\\(\\<defun:\\) \\([-a-zA-Z0-9_.+]*\\)"            (1 'bold t) (2 'font-lock-function-name-face t))
         ("\\(\\<defmacro:\\) \\([-a-zA-Z0-9_.+]*\\)"         (1 'bold t) (2 'font-lock-function-name-face t))
         ("\\(\\<file:\\) \\([a-zA-Z0-9_.+]*\\)"              (1 'bold t))
         ("\\(\\<line:\\) \\([0-9]+\\)"                       (1 'bold t) (2 fg:lightmagenta t))
         ("#[-a-zA-Z0-9'.:+]+"                                 0 'font-lock-function-name-face t)
         ;;  end of smegs
         ("^[ \t]*[^\n\r]*[\r\n]"                            0 d-face-red-and-white t)
         ;;("\\<message-and-sit\\>"                            0 d-debug-face t)
         ;; IMPORTANT NOTES! sdfsdf
         ;; IMPORTANT NOTES? sdfsdff
         ("\\(\\<[A-Z]+[^a-z\r\n!:;()]*[A-Z0-9][!?]+\\)\\(.*$\\)"
          (1 d-face-green-and-yellow t)
          (2 bg:yellow t))
         ))
      ))

  )

(provide 'new-flock)

;; gnu.emacs.help
;;; gnu.emacs.help
