diff options
author | Robert Speicher <robert@gitlab.com> | 2018-10-15 15:27:15 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2018-10-15 15:27:15 +0000 |
commit | f5d088eb11b066dadad06948e158b39e9432573c (patch) | |
tree | 9f1db7d7ba83f1b221bdb88b864e8efca1fd95d8 /app | |
parent | 201143e9db57ed6f4cd72704387777b4be5ecc34 (diff) | |
parent | 399056ed783e12337a9c47b06b4aae021198f1cd (diff) | |
download | gitlab-ce-f5d088eb11b066dadad06948e158b39e9432573c.tar.gz |
Merge branch 'zj-remove-linguist' into 'master'
Remove dependencies on Linguist
Closes #35450
See merge request gitlab-org/gitlab-ce!21008
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/blob_edit/blob_bundle.js | 4 | ||||
-rw-r--r-- | app/assets/javascripts/blob_edit/edit_blob.js | 8 | ||||
-rw-r--r-- | app/assets/javascripts/lib/ace.js | 1 | ||||
-rw-r--r-- | app/assets/javascripts/lib/utils/ace_utils.js | 6 | ||||
-rw-r--r-- | app/assets/javascripts/merge_conflicts/components/diff_file_editor.js | 3 | ||||
-rw-r--r-- | app/helpers/blob_helper.rb | 2 | ||||
-rw-r--r-- | app/models/blob.rb | 2 | ||||
-rw-r--r-- | app/models/concerns/blob_like.rb | 2 |
8 files changed, 19 insertions, 9 deletions
diff --git a/app/assets/javascripts/blob_edit/blob_bundle.js b/app/assets/javascripts/blob_edit/blob_bundle.js index 4e4598870fa..3cc89ff1955 100644 --- a/app/assets/javascripts/blob_edit/blob_bundle.js +++ b/app/assets/javascripts/blob_edit/blob_bundle.js @@ -13,11 +13,11 @@ export default () => { if (editBlobForm.length) { const urlRoot = editBlobForm.data('relativeUrlRoot'); const assetsPath = editBlobForm.data('assetsPrefix'); - const blobLanguage = editBlobForm.data('blobLanguage'); + const filePath = editBlobForm.data('blobFilename') const currentAction = $('.js-file-title').data('currentAction'); const projectId = editBlobForm.data('project-id'); - new EditBlob(`${urlRoot}${assetsPath}`, blobLanguage, currentAction, projectId); + new EditBlob(`${urlRoot}${assetsPath}`, filePath, currentAction, projectId); new NewCommitForm(editBlobForm); } diff --git a/app/assets/javascripts/blob_edit/edit_blob.js b/app/assets/javascripts/blob_edit/edit_blob.js index ec2b130ab7d..6e19548eed2 100644 --- a/app/assets/javascripts/blob_edit/edit_blob.js +++ b/app/assets/javascripts/blob_edit/edit_blob.js @@ -5,6 +5,7 @@ import axios from '~/lib/utils/axios_utils'; import createFlash from '~/flash'; import { __ } from '~/locale'; import TemplateSelectorMediator from '../blob/file_template_mediator'; +import getModeByFileExtension from '~/lib/utils/ace_utils'; export default class EditBlob { constructor(assetsPath, aceMode, currentAction, projectId) { @@ -14,9 +15,10 @@ export default class EditBlob { this.initFileSelectors(currentAction, projectId); } - configureAceEditor(aceMode, assetsPath) { + configureAceEditor(filePath, assetsPath) { ace.config.set('modePath', `${assetsPath}/ace`); ace.config.loadModule('ace/ext/searchbox'); + ace.config.loadModule('ace/ext/modelist'); this.editor = ace.edit('editor'); @@ -25,8 +27,8 @@ export default class EditBlob { this.editor.focus(); - if (aceMode) { - this.editor.getSession().setMode(`ace/mode/${aceMode}`); + if (filePath) { + this.editor.getSession().setMode(getModeByFileExtension(filePath)); } } diff --git a/app/assets/javascripts/lib/ace.js b/app/assets/javascripts/lib/ace.js index 9cdc0309503..e90b3d2eec7 100644 --- a/app/assets/javascripts/lib/ace.js +++ b/app/assets/javascripts/lib/ace.js @@ -1,3 +1,4 @@ /*= require ace/ace */ +/*= require ace/ext-modelist */ /*= require ace/ext-searchbox */ /*= require ./ace/ace_config_paths */ diff --git a/app/assets/javascripts/lib/utils/ace_utils.js b/app/assets/javascripts/lib/utils/ace_utils.js new file mode 100644 index 00000000000..efc4b2a8d94 --- /dev/null +++ b/app/assets/javascripts/lib/utils/ace_utils.js @@ -0,0 +1,6 @@ +/* global ace */ + +export default function getModeByFileExtension(path) { + const modelist = ace.require("ace/ext/modelist"); + return modelist.getModeForPath(path).mode; +}; diff --git a/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js b/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js index 425b806e9d6..a62ebe23646 100644 --- a/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js +++ b/app/assets/javascripts/merge_conflicts/components/diff_file_editor.js @@ -5,6 +5,7 @@ import Vue from 'vue'; import axios from '~/lib/utils/axios_utils'; import flash from '~/flash'; import { __ } from '~/locale'; +import getModeByFileExtension from '~/lib/utils/ace_utils'; (global => { global.mergeConflicts = global.mergeConflicts || {}; @@ -72,7 +73,7 @@ import { __ } from '~/locale'; this.fileLoaded = true; this.editor = ace.edit(content); this.editor.$blockScrolling = Infinity; // Turn off annoying warning - this.editor.getSession().setMode(`ace/mode/${data.blob_ace_mode}`); + this.editor.getSession().setMode(getModeByFileExtension(data.new_path)); this.editor.on('change', () => { this.saveDiffResolution(); }); diff --git a/app/helpers/blob_helper.rb b/app/helpers/blob_helper.rb index 883e5ddff57..8d58c86b7a4 100644 --- a/app/helpers/blob_helper.rb +++ b/app/helpers/blob_helper.rb @@ -195,7 +195,7 @@ module BlobHelper { 'relative-url-root' => Rails.application.config.relative_url_root, 'assets-prefix' => Gitlab::Application.config.assets.prefix, - 'blob-language' => @blob && @blob.language.try(:ace_mode), + 'blob-filename' => @blob && @blob.path, 'project-id' => project.id } end diff --git a/app/models/blob.rb b/app/models/blob.rb index acc64ffca67..31a839274b5 100644 --- a/app/models/blob.rb +++ b/app/models/blob.rb @@ -162,7 +162,7 @@ class Blob < SimpleDelegator if stored_externally? if rich_viewer rich_viewer.binary? - elsif Linguist::Language.find_by_extension(name).any? + elsif known_extension? false elsif _mime_type _mime_type.binary? diff --git a/app/models/concerns/blob_like.rb b/app/models/concerns/blob_like.rb index e96fefe81c4..f20f01486a5 100644 --- a/app/models/concerns/blob_like.rb +++ b/app/models/concerns/blob_like.rb @@ -2,7 +2,7 @@ module BlobLike extend ActiveSupport::Concern - include Linguist::BlobHelper + include Gitlab::BlobHelper def id raise NotImplementedError |