 ;;;; * pjs mode
 ;;;;  (header added automatically)
 ;;;;
+
+;;; FACES ;;;
+
+;; kernel functions : yellow in italic
+(defface pjs-kernel-functions-face
+    '((t 
+       :inherit font-lock-function-name-face :slant italic))
+    "PJS kernel fonts are displayed in italic"
+    )
+
+(defvar pjs-kernel-functions-face
+  'pjs-kernel-functions-face)
+
+;; global variable definution : Red in bold
+(defface pjs-var-definition-face
+    '((t 
+       :inherit font-lock-variable-name-face :weight bold))
+    "variable defintion are in bold"
+    )
+
+(defvar pjs-var-definition-face
+  'pjs-var-definition-face)
+
+
+;; functions of the current namespace
+
+;; symbols : light blue
+
+
 ;; constants
 (defconst pjs-font-lock-constants
   (js--regexp-opt-symbol

(defun search-pjs-kernel-functions (end)
  (when (list-pjs-kernel-functions)
    (let ((search-pattern (list-pjs-kernel-functions)))
      (re-search-forward search-pattern end t))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; highlight functions defined in the buffer

;; languages keywords
(defconst pjs-font-lock-keywords
  (js--regexp-opt-symbol
   '("order by"
     "default"
     "on"
     "let"
     "case"
     "continue"
     "protected"
     "switch"
     "false"
     "return"
     "void"
     "undefined"
     "for"
     "catch"
     "try"
     "in"
     "method"
     "extends"
     "break"
     "typeof"
     "with"
     "namespace"
     "finally"
     "instanceof"
     "true"
     "if"
     "this"
     "context"
     "group by"
     "applet"
     "else"
     "throw"
     "var"
     "do"
     "where"
     "import"
     "while"
     "function"
     "super"
     "new"
     "return values")))

;; pjs types
(defconst pjs-font-lock-types
