File tree 2 files changed +43
-1
lines changed
2 files changed +43
-1
lines changed Original file line number Diff line number Diff line change 31
31
enhanceRBModules ( ) ;
32
32
$ ( document . body ) . addClass ( 'boxcutter-processed' ) ;
33
33
return ;
34
+ case 'elixir' :
35
+ enhanceElixirModules ( ) ;
36
+ $ ( document . body ) . addClass ( 'boxcutter-processed' ) ;
34
37
default :
35
38
/* do nothing */
36
39
return ;
67
70
return 'bower' ;
68
71
case 'Gemfile' :
69
72
return 'rb' ;
73
+ case 'mix.exs' :
74
+ return 'elixir' ;
70
75
default :
71
76
return null ;
72
77
}
104
109
}
105
110
}
106
111
}
112
+
113
+ function handleElixirClick ( elem ) {
114
+ var pkgName = elem . target . attributes [ 'data-pkg-name' ] . value ;
115
+ var hexUrl = 'https://hex.pm/packages/' + pkgName ;
116
+ $ . get ( hexUrl ) . then ( function ( data ) {
117
+ var ghurl = $ ( data ) . find ( 'ul.links li a[href*="github"]' ) . attr ( 'href' ) ;
118
+ window . open ( ghurl || hexUrl ) ;
119
+ } ) ;
120
+ }
121
+
122
+ function enhanceElixirModules ( ) {
123
+ var codeRows = $ ( '.type-elixir tbody tr td.blob-code-inner' ) ;
124
+ var inDeps = false ;
125
+ for ( var i = 0 ; i < codeRows . length ; i += 1 ) {
126
+ var rowElem = codeRows [ i ] ;
127
+ if ( rowElem . innerText . trim ( ) === 'defp deps do' ) {
128
+ inDeps = true ;
129
+ } else {
130
+ if ( inDeps ) {
131
+ if ( rowElem . innerText . trim ( ) === 'end' ) {
132
+ inDeps = false ;
133
+ } else {
134
+ var r = / [ \[ ] * \{ \: ( [ \w ] + ) [ \, \s ] * \" [ \~ \> \= ] + [ \s ] * ( [ 0 - 9 \. \w \- ] + ) / g;
135
+ var parts = r . exec ( rowElem . innerText . trim ( ) ) ;
136
+ var lib = parts [ 1 ] ;
137
+ var vers = parts [ 2 ] ;
138
+ var $pkgSymbol = $ ( rowElem ) . find ( '.pl-c1' ) [ 0 ] ;
139
+ var existingText = $pkgSymbol . innerText ;
140
+ var newText = ":<a data-pkg-name=\"" + existingText . substring ( 1 ) + "\">" + existingText . substring ( 1 ) + "</a>"
141
+ $ ( $pkgSymbol ) . click ( handleElixirClick ) ;
142
+ $pkgSymbol . innerHTML = newText ;
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
107
148
108
149
function handleJSClick ( jqevt ) {
109
150
var $target = $ ( jqevt . target ) ;
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " Boxcutter" ,
3
3
"description" : " Better package manifests on Github" ,
4
- "version" : " 7 " ,
4
+ "version" : " 8 " ,
5
5
"manifest_version" : 2 ,
6
6
"permissions" : [
7
7
" https://registry.npmjs.org/*" ,
8
8
" https://rubygems.org/*" ,
9
+ " https://hex.pm/*" ,
9
10
" https://bower.herokuapp.com/*"
10
11
],
11
12
"content_scripts" : [
You can’t perform that action at this time.
0 commit comments