From 1d4edc99819018e800d665f7668b418c60a618d8 Mon Sep 17 00:00:00 2001 From: jac lou hoo Date: Sun, 27 Jun 2021 15:21:20 -0400 Subject: [PATCH 1/2] Add "Open arXiv" action to cite context menu --- autoload/vimtex/context/cite.vim | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/autoload/vimtex/context/cite.vim b/autoload/vimtex/context/cite.vim index cfc998cd91..5dfcfb1c30 100644 --- a/autoload/vimtex/context/cite.vim +++ b/autoload/vimtex/context/cite.vim @@ -92,6 +92,11 @@ function! s:actions.create(entry) abort dict " {{{1 if has_key(a:entry, 'doi') call add(l:new.menu, {'name': 'Open doi', 'func': 'open_doi'}) endif + + let s:is_arxiv = (has_key(a:entry, 'archiveprefix') && a:entry.archiveprefix == 'arXiv' || a:entry.eprint[0:6] == 'arXiv') + if (has_key(a:entry, 'eprint') && s:is_arxiv) + call add(l:new.menu, {'name': 'Open arXiv', 'func': 'open_arxiv'}) + endif if has_key(a:entry, 'url') call add(l:new.menu, {'name': 'Open url', 'func': 'open_url'}) @@ -166,6 +171,11 @@ function! s:actions.open_pdf() abort dict " {{{1 \ . ' ' . vimtex#util#shellescape(l:file)) endfunction +" }}}1 +function! s:actions.open_arxiv() abort dict " {{{1 + call vimtex#util#www('http://arxiv.org/abs/' . self.entry.eprint) +endfunction + " }}}1 function! s:actions.open_doi() abort dict " {{{1 call vimtex#util#www('http://dx.doi.org/' . self.entry.doi) From e92233cbdf89d7b4ea0771613557d735a1e0e9e3 Mon Sep 17 00:00:00 2001 From: jac lou hoo Date: Sun, 27 Jun 2021 15:38:37 -0400 Subject: [PATCH 2/2] fix indexing error --- autoload/vimtex/context/cite.vim | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/autoload/vimtex/context/cite.vim b/autoload/vimtex/context/cite.vim index 5dfcfb1c30..2af167af89 100644 --- a/autoload/vimtex/context/cite.vim +++ b/autoload/vimtex/context/cite.vim @@ -93,9 +93,8 @@ function! s:actions.create(entry) abort dict " {{{1 call add(l:new.menu, {'name': 'Open doi', 'func': 'open_doi'}) endif - let s:is_arxiv = (has_key(a:entry, 'archiveprefix') && a:entry.archiveprefix == 'arXiv' || a:entry.eprint[0:6] == 'arXiv') - if (has_key(a:entry, 'eprint') && s:is_arxiv) - call add(l:new.menu, {'name': 'Open arXiv', 'func': 'open_arxiv'}) + if (has_key(a:entry, 'eprint') && (has_key(a:entry, 'archiveprefix') && a:entry.archiveprefix == 'arXiv' || a:entry.eprint[0:4] == 'arXiv')) + call add(l:new.menu, {'name': 'Open arXiv', 'func': 'open_arxiv'}) endif if has_key(a:entry, 'url')