Make use of file types for highlighting and tabs

This commit is contained in:
Maximilian Grundke
2015-12-10 13:48:31 +01:00
parent 79e7f7b7e8
commit 842907f1fa
2 changed files with 14 additions and 3 deletions

View File

@ -7,11 +7,13 @@ $(function() {
var active_file = undefined; var active_file = undefined;
var fileTrees = [] var fileTrees = []
var editor = undefined; var editor = undefined;
var fileTypeById = {}
var showActiveFile = function() { var showActiveFile = function() {
var session = editor.getSession(); var session = editor.getSession();
//session.setMode(active_file.file_type.editor_mode); var fileType = fileTypeById[active_file.file_type_id]
//session.setTabSize(active_file.file_type.indent_size); session.setMode(fileType.editor_mode);
session.setTabSize(fileType.indent_size);
session.setValue(active_file.content); session.setValue(active_file.content);
session.setUseSoftTabs(true); session.setUseSoftTabs(true);
session.setUseWrapMode(true); session.setUseWrapMode(true);
@ -50,6 +52,7 @@ $(function() {
var slider = $('#submissions-slider>input'); var slider = $('#submissions-slider>input');
var submissions = $('#data').data('submissions'); var submissions = $('#data').data('submissions');
var files = $('#data').data('files'); var files = $('#data').data('files');
var filetypes = $('#data').data('file-types');
editor = ace.edit('current-file'); editor = ace.edit('current-file');
editor.setShowPrintMargin(false); editor.setShowPrintMargin(false);
@ -57,6 +60,11 @@ $(function() {
editor.$blockScrolling = Infinity; editor.$blockScrolling = Infinity;
editor.setReadOnly(true); editor.setReadOnly(true);
_.each(filetypes, function (filetype) {
filetype = JSON.parse(filetype);
fileTypeById[filetype.id] = filetype;
});
slider.on('change', function(event) { slider.on('change', function(event) {
currentSubmission = slider.val(); currentSubmission = slider.val();
var currentFiles = files[currentSubmission]; var currentFiles = files[currentSubmission];

View File

@ -5,10 +5,13 @@ h1 = "#{@exercise} (external user #{@external_user})"
- initial_files = current_submission.files.to_a - initial_files = current_submission.files.to_a
- all_files = [] - all_files = []
- file_types = Set.new()
- submissions.each do |submission| - submissions.each do |submission|
- submission.files.each do |file|
- file_types.add(ActiveSupport::JSON.encode(file.file_type))
- all_files.push(submission.files) - all_files.push(submission.files)
.hidden#data data-submissions=ActiveSupport::JSON.encode(submissions) data-files=ActiveSupport::JSON.encode(all_files) .hidden#data data-submissions=ActiveSupport::JSON.encode(submissions) data-files=ActiveSupport::JSON.encode(all_files) data-file-types=ActiveSupport::JSON.encode(file_types)
#stats-editor.row #stats-editor.row
- index = 0 - index = 0