This directive allows you to add CodeMirror to your textarea elements.
<section> <div ui-codemirror >Code mirror here</div> </section>
<section>
<div ui-codemirror="{
lineNumbers: true,
theme:'twilight',
readOnly: 'nocursor',
lineWrapping : true,
mode: 'xml'
}" ><html style="color: green">
<!-- this is a comment -->
<head>
<title>HTML Example</title>
</head>
<body>
The indentation tries to be <em>somewhat &quot;do what
I mean&quot;</em>... but might not match your style.
</body>
</html></div>
</section>
<section ng-controller="CodemirrorCtrl"> <textarea ui-codemirror="cmOption" ng-model="cmModel"></textarea> Mode : <select ng-model="mode" ng-options="m for m in modes" ng-change="modeChanged()"></select> </section>
app.controller('CodemirrorCtrl', ['$scope', function($scope) {
// The modes
$scope.modes = ['Scheme', 'XML', 'Javascript'];
$scope.mode = $scope.modes[0];
// The ui-codemirror option
$scope.cmOption = {
lineNumbers: true,
indentWithTabs: true,
onLoad : function(_cm){
// HACK to have the codemirror instance in the scope...
$scope.modeChanged = function(){
_cm.setOption("mode", $scope.mode.toLowerCase());
};
}
};
// Initial code content...
$scope.cmModel = ';; Scheme code in here.\n' +
'(define (double x)\n\t(* x x))\n\n\n' +
'<!-- XML code in here. -->\n' +
'<root>\n\t<foo>\n\t</foo>\n\t<bar/>\n</root>\n\n\n' +
'// Javascript code in here.\n' +
'function foo(msg) {\n\tvar r = Math.random();\n\treturn "" + r + " : " + msg;\n}';
}]);