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>