Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion templates/repo/view_file.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
{{end}}
</div>
{{else if .FileSize}}
<table>
<table data-global-init="initRepoCodeView">
<tbody>
{{range $idx, $code := .FileContent}}
{{$line := Eval $idx "+" 1}}
Expand Down
29 changes: 16 additions & 13 deletions web_src/js/features/repo-code.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {svg} from '../svg.ts';
import {createTippy} from '../modules/tippy.ts';
import {toAbsoluteUrl} from '../utils.ts';
import {addDelegatedEventListener} from '../utils/dom.ts';
import {registerGlobalInitFunc} from '../modules/observer.ts';

function changeHash(hash: string) {
if (window.history.pushState) {
Expand Down Expand Up @@ -110,19 +111,21 @@ function showLineButton() {
}

export function initRepoCodeView() {
if (!document.querySelector('.code-view .lines-num')) return;

let selRangeStart: string;
addDelegatedEventListener(document, 'click', '.lines-num span', (el: HTMLElement, e: KeyboardEvent) => {
if (!selRangeStart || !e.shiftKey) {
selRangeStart = el.getAttribute('id');
selectRange(selRangeStart);
} else {
const selRangeStop = el.getAttribute('id');
selectRange(`${selRangeStart}-${selRangeStop}`);
}
window.getSelection().removeAllRanges();
showLineButton();
registerGlobalInitFunc('initRepoCodeView', (el: HTMLElement) => {
if (!el.querySelector('.lines-num')) return;

let selRangeStart: string;
addDelegatedEventListener(el, 'click', '.lines-num span', (el: HTMLElement, e: KeyboardEvent) => {
if (!selRangeStart || !e.shiftKey) {
selRangeStart = el.getAttribute('id');
selectRange(selRangeStart);
} else {
const selRangeStop = el.getAttribute('id');
selectRange(`${selRangeStart}-${selRangeStop}`);
}
window.getSelection().removeAllRanges();
showLineButton();
});
});

const onHashChange = () => {
Expand Down