From 8bc0248a14682a3eb9eff55804573c4090aca3ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Neuh=C3=A4user?= Date: Tue, 30 Mar 2010 21:20:21 +0000 Subject: [PATCH] Changed js_sig_re to handle JavaScript identifiers such as `$`. --- sphinx/domains/javascript.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sphinx/domains/javascript.py b/sphinx/domains/javascript.py index c2b28e66b..184ab88af 100644 --- a/sphinx/domains/javascript.py +++ b/sphinx/domains/javascript.py @@ -17,9 +17,13 @@ from sphinx.directives import ObjectDescription from sphinx.domains.python import py_paramlist_re as js_paramlist_re from sphinx.roles import XRefRole -js_sig_re = re.compile(r'(\w+)\s*\((.*)\)') +js_sig_re = re.compile( + r'''([^ .]+\.)? # object name + ([^ .]+\s*) # name + \((.*)\)$ # arguments +''', re.VERBOSE) -class JSFunction(ObjectDescription): +class JSCallable(ObjectDescription): """ Description of a JavaScript function. """ @@ -27,7 +31,7 @@ class JSFunction(ObjectDescription): match = js_sig_re.match(sig) if match is None: raise ValueError() - name, arglist = match.groups() + obj, name, arglist = match.groups() signode += addnodes.desc_name(name, name) if not arglist: @@ -68,7 +72,7 @@ class JavaScriptDomain(Domain): "data": ObjType(l_("js data"), "data"), } directives = { - "function": JSFunction, + "function": JSCallable, "data": JSData, } roles = {