diff --git a/common/lib/capa/capa/inputtypes.py b/common/lib/capa/capa/inputtypes.py index 31482214b3cfdda06b2f717085ea610269b70f1d..8b3867be5b32de27c00260ce5416b8a442c15ad6 100644 --- a/common/lib/capa/capa/inputtypes.py +++ b/common/lib/capa/capa/inputtypes.py @@ -313,14 +313,20 @@ def textbox(element, value, status, render_template, msg=''): size = element.get('size') rows = element.get('rows') or '30' cols = element.get('cols') or '80' - mode = element.get('mode') or 'python' # mode for CodeMirror, eg "python" or "xml" hidden = element.get('hidden', '') # if specified, then textline is hidden and id is stored in div of name given by hidden - linenumbers = element.get('linenumbers','true') # for CodeMirror + if not value: value = element.text # if no student input yet, then use the default input given by the problem + + # For CodeMirror + mode = element.get('mode') or 'python' # mode, eg "python" or "xml" + linenumbers = element.get('linenumbers','true') # for CodeMirror + tabsize = element.get('tabsize','4') + tabsize = int(tabsize) + context = {'id': eid, 'value': value, 'state': status, 'count': count, 'size': size, 'msg': msg, 'mode': mode, 'linenumbers': linenumbers, 'rows': rows, 'cols': cols, - 'hidden': hidden, + 'hidden': hidden, 'tabsize': tabsize, } html = render_template("textbox.html", context) try: diff --git a/common/lib/capa/capa/templates/textbox.html b/common/lib/capa/capa/templates/textbox.html index d553ba16e5bef0b752d1642b9efeeab771c5a423..d37eda72849e34403de8c3e008900f09f6d6a923 100644 --- a/common/lib/capa/capa/templates/textbox.html +++ b/common/lib/capa/capa/templates/textbox.html @@ -35,15 +35,20 @@ lineNumbers: true, % endif mode: "${mode}", - tabsize: 4, + matchBrackets: true, + lineWrapping: true, + indentUnit: "${tabsize}", + tabSize: "${tabsize}", + smartIndent: false }); }); </script> <style type="text/css"> .CodeMirror { - border: 2px solid black; + border: 1px solid black; font-size: 14px; line-height: 18px; + resize: vertical; } </style> </section>