mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 21:45:50 +01:00
add filename for syntax highlight hint
This commit is contained in:
@@ -84,8 +84,8 @@
|
|||||||
<td style="padding: 0;">
|
<td style="padding: 0;">
|
||||||
@if(diff.newContent != None || diff.oldContent != None){
|
@if(diff.newContent != None || diff.oldContent != None){
|
||||||
<div id="diffText-@i" class="diffText"></div>
|
<div id="diffText-@i" class="diffText"></div>
|
||||||
<textarea id="newText-@i" style="display: none;">@diff.newContent.getOrElse("")</textarea>
|
<textarea id="newText-@i" style="display: none;" data-file-name="@diff.oldPath">@diff.newContent.getOrElse("")</textarea>
|
||||||
<textarea id="oldText-@i" style="display: none;">@diff.oldContent.getOrElse("")</textarea>
|
<textarea id="oldText-@i" style="display: none;" data-file-name="@diff.newPath">@diff.oldContent.getOrElse("")</textarea>
|
||||||
} else {
|
} else {
|
||||||
Not supported
|
Not supported
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div id="diffText"></div>
|
<div id="diffText"></div>
|
||||||
<textarea id="newText" style="display: none;"></textarea>
|
<textarea id="newText" style="display: none;" data-file-name="@fileName"></textarea>
|
||||||
<textarea id="oldText" style="display: none;">@content.content</textarea>
|
<textarea id="oldText" style="display: none;" data-file-name="@fileName">@content.content</textarea>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -52,7 +52,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
<script type="text/javascript" src="@assets/vendors/jsdifflib/difflib.js"></script>
|
<script type="text/javascript" src="@assets/vendors/jsdifflib/difflib.js"></script>
|
||||||
<script type="text/javascript" src="@assets/vendors/jsdifflib/diffview.js"></script>
|
|
||||||
<link href="@assets/vendors/jsdifflib/diffview.css" type="text/css" rel="stylesheet" />
|
<link href="@assets/vendors/jsdifflib/diffview.css" type="text/css" rel="stylesheet" />
|
||||||
<script>
|
<script>
|
||||||
$(function(){
|
$(function(){
|
||||||
|
|||||||
@@ -71,7 +71,6 @@
|
|||||||
}
|
}
|
||||||
<script src="@assets/vendors/ace/ace.js" type="text/javascript" charset="utf-8"></script>
|
<script src="@assets/vendors/ace/ace.js" type="text/javascript" charset="utf-8"></script>
|
||||||
<script type="text/javascript" src="@assets/vendors/jsdifflib/difflib.js"></script>
|
<script type="text/javascript" src="@assets/vendors/jsdifflib/difflib.js"></script>
|
||||||
<script type="text/javascript" src="@assets/vendors/jsdifflib/diffview.js"></script>
|
|
||||||
<link href="@assets/vendors/jsdifflib/diffview.css" type="text/css" rel="stylesheet" />
|
<link href="@assets/vendors/jsdifflib/diffview.css" type="text/css" rel="stylesheet" />
|
||||||
<script>
|
<script>
|
||||||
$(function(){
|
$(function(){
|
||||||
@@ -138,8 +137,8 @@ $(function(){
|
|||||||
// Show diff
|
// Show diff
|
||||||
$('#preview').empty()
|
$('#preview').empty()
|
||||||
.append($('<div id="diffText">'))
|
.append($('<div id="diffText">'))
|
||||||
.append($('<textarea id="newText" style="display: none;">').html(editor.getValue()))
|
.append($('<textarea id="newText" style="display: none;">').data('file-name',$("#newFileName").val()).html(editor.getValue()))
|
||||||
.append($('<textarea id="oldText" style="display: none;">').html($('#initial').val()));
|
.append($('<textarea id="oldText" style="display: none;">').data('file-name',$("#oldFileName").val()).html($('#initial').val()));
|
||||||
diffUsingJS('oldText', 'newText', 'diffText', 1);
|
diffUsingJS('oldText', 'newText', 'diffText', 1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -79,9 +79,12 @@ function displayErrors(data, elem){
|
|||||||
* @param ignoreSpace {Number} 0: include, 1: ignore
|
* @param ignoreSpace {Number} 0: include, 1: ignore
|
||||||
*/
|
*/
|
||||||
function diffUsingJS(oldTextId, newTextId, outputId, viewType, ignoreSpace) {
|
function diffUsingJS(oldTextId, newTextId, outputId, viewType, ignoreSpace) {
|
||||||
|
var old = $('#'+oldTextId), head = $('#'+newTextId);
|
||||||
var render = new JsDiffRender({
|
var render = new JsDiffRender({
|
||||||
baseText: document.getElementById(oldTextId).value,
|
oldText: old.val(),
|
||||||
newText: document.getElementById(newTextId).value,
|
oldTextName: old.data('file-name'),
|
||||||
|
newText: head.val(),
|
||||||
|
newTextName: head.data('file-name'),
|
||||||
ignoreSpace: ignoreSpace,
|
ignoreSpace: ignoreSpace,
|
||||||
contextSize: 4
|
contextSize: 4
|
||||||
});
|
});
|
||||||
@@ -96,8 +99,8 @@ function jqSelectorEscape(val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function JsDiffRender(params){
|
function JsDiffRender(params){
|
||||||
var baseTextLines = (params.baseText==="")?[]:params.baseText.split(/\r\n|\r|\n/);
|
var baseTextLines = (params.oldText==="")?[]:params.oldText.split(/\r\n|\r|\n/);
|
||||||
var headTextLines = (params.headText==="")?[]:params.newText.split(/\r\n|\r|\n/);
|
var headTextLines = (params.newText==="")?[]:params.newText.split(/\r\n|\r|\n/);
|
||||||
var sm, ctx;
|
var sm, ctx;
|
||||||
if(params.ignoreSpace){
|
if(params.ignoreSpace){
|
||||||
var ignoreSpace = function(a){ return a.replace(/\s+/,' ').replace(/^\s+|\s+$/,''); };
|
var ignoreSpace = function(a){ return a.replace(/\s+/,' ').replace(/^\s+|\s+$/,''); };
|
||||||
@@ -111,16 +114,19 @@ function JsDiffRender(params){
|
|||||||
}
|
}
|
||||||
var oplines = this.fold(ctx, params.contextSize);
|
var oplines = this.fold(ctx, params.contextSize);
|
||||||
|
|
||||||
function prettyDom(text){
|
function prettyDom(text, fileName){
|
||||||
var dom = null;
|
var dom = null;
|
||||||
return function(ln){
|
return function(ln){
|
||||||
if(dom===null){
|
if(dom===null){
|
||||||
dom = prettyPrintOne(text.replace(/&/g,'&').replace(/</g,'<').replace(/"/g,'"').replace(/>/g,'>'), null, true);
|
dom = prettyPrintOne(
|
||||||
|
text.replace(/&/g,'&').replace(/</g,'<').replace(/"/g,'"').replace(/>/g,'>'),
|
||||||
|
(/\.([^.]*)$/.exec(fileName)||[])[1],
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
return (new RegExp('<li id="L'+ln+'"[^>]*>(.*?)</li>').exec(dom) || [])[1];
|
return (new RegExp('<li id="L'+ln+'"[^>]*>(.*?)</li>').exec(dom) || [])[1];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return this.renders(oplines, prettyDom(params.baseText), prettyDom(params.newText));
|
return this.renders(oplines, prettyDom(params.oldText, params.oldTextName), prettyDom(params.newText, params.newTextName));
|
||||||
}
|
}
|
||||||
$.extend(JsDiffRender.prototype,{
|
$.extend(JsDiffRender.prototype,{
|
||||||
renders: function(oplines, baseTextDom, headTextDom){
|
renders: function(oplines, baseTextDom, headTextDom){
|
||||||
|
|||||||
Reference in New Issue
Block a user