Wie dem einen oder anderen sicher aufgefallen ist, bietet dieses Journal neuerdings Syntaxhervorhebung, unter anderem für Code in Lisp. Zu diesem Zweck verwende ich den Google Code Prettifier. Die Syntaxbeschreibung für Lisp allerdings habe ich ein wenig angepaßt, da sie mir nicht von einem praktizierenden Lisper geschrieben zu sein schien und entsprechende Probleme aufwies. Man darf mir dies bei Bedarf gerne gleichtun und den Inhalt der Datei lang-lisp.js
durch folgenden Code ersetzen:
// Copyright (C) 2008 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. PR.registerLangHandler( PR.createSimpleLexer( [ ['opn', /^\(|\[/, null, ''], ['clo', /^\)|\]/, null, ''], // A line comment that starts with ; [PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'], // Whitespace [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], // A double quoted, possibly multi-line, string. [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] ], [ [PR.PR_KEYWORD, /^(?:block|c[ad]+r|catch|cons|defun|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind|loop|with--*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?|define--*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?|for|in|from|to|fn|defn|def)\b/, null], [PR.PR_LITERAL, /^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i], // A single quote or a colon possibly followed by a word that optionally ends with // = ! or ?. [PR.PR_LITERAL, /^(\'|\:)(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], // A word that optionally ends with = ! or ?. [PR.PR_PLAIN, /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], // A printable non-space non-special character [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\\\';]+/] ]), ['cl', 'el', 'lisp', 'scm']);
Comments
Submit a comment
Note: This website uses a JavaScript-based spam prevention system. Please enable JavaScript in your browser to post comments. Comment format is plain text. Use blank lines to separate paragraphs.