Changed js_sig_re to handle JavaScript identifiers such as $.

This commit is contained in:
Daniel Neuhäuser 2010-03-30 21:20:21 +00:00
parent 9d53f460ea
commit 8bc0248a14

View File

@ -17,9 +17,13 @@ from sphinx.directives import ObjectDescription
from sphinx.domains.python import py_paramlist_re as js_paramlist_re from sphinx.domains.python import py_paramlist_re as js_paramlist_re
from sphinx.roles import XRefRole 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. Description of a JavaScript function.
""" """
@ -27,7 +31,7 @@ class JSFunction(ObjectDescription):
match = js_sig_re.match(sig) match = js_sig_re.match(sig)
if match is None: if match is None:
raise ValueError() raise ValueError()
name, arglist = match.groups() obj, name, arglist = match.groups()
signode += addnodes.desc_name(name, name) signode += addnodes.desc_name(name, name)
if not arglist: if not arglist:
@ -68,7 +72,7 @@ class JavaScriptDomain(Domain):
"data": ObjType(l_("js data"), "data"), "data": ObjType(l_("js data"), "data"),
} }
directives = { directives = {
"function": JSFunction, "function": JSCallable,
"data": JSData, "data": JSData,
} }
roles = { roles = {