Skip to content

Commit 3b38beb

Browse files
committed
Add clickable commit SHAs in blame view
1 parent 9dd29f6 commit 3b38beb

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

GLFileView.m

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ - (NSString *) parseBlame:(NSString *)txt
194194
line=[lines objectAtIndex:i];
195195
NSArray *header=[line componentsSeparatedByString:@" "];
196196
if([header count]==4){
197+
NSString *commitID = (NSString *)[header objectAtIndex:0];
197198
int nLines=[(NSString *)[header objectAtIndex:3] intValue];
198199
[res appendFormat:@"<tr class='block l%d'>\n",nLines];
199200
line=[lines objectAtIndex:++i];
@@ -206,6 +207,11 @@ - (NSString *) parseBlame:(NSString *)txt
206207
summary=[line stringByReplacingOccurrencesOfString:@"summary" withString:@""];
207208
}
208209
}
210+
NSRange trunc_c={0,7};
211+
NSString *truncate_c=commitID;
212+
if([commitID length]>8){
213+
truncate_c=[commitID substringWithRange:trunc_c];
214+
}
209215
NSRange trunc={0,30};
210216
NSString *truncate_a=author;
211217
if([author length]>30){
@@ -215,7 +221,7 @@ - (NSString *) parseBlame:(NSString *)txt
215221
if([summary length]>30){
216222
truncate_s=[summary substringWithRange:trunc];
217223
}
218-
NSString *block=[NSString stringWithFormat:@"<td><p class='author'>%@</p><p class='summary'>%@</p></td>\n<td>\n",truncate_a,truncate_s];
224+
NSString *block=[NSString stringWithFormat:@"<td><p class='commit-hash'><a href='' onclick='selectCommit(\"%@\"); return false;'>%@</a></p><p class='author'>%@</p><p class='summary'>%@</p></td>\n<td>\n",commitID,truncate_c,truncate_a,truncate_s];
219225
[headers setObject:block forKey:[header objectAtIndex:0]];
220226
}
221227
[res appendString:[headers objectForKey:[header objectAtIndex:0]]];

html/views/blame/blame.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ var showFile = function(txt) {
77
SyntaxHighlighter.highlight();
88
return;
99
}
10+
11+
var selectCommit = function(a) {
12+
Controller.selectCommit_(a);
13+
}

0 commit comments

Comments
 (0)