diff --git a/src/reference.ts b/src/reference.ts index 128ef71..0f78e37 100644 --- a/src/reference.ts +++ b/src/reference.ts @@ -13,16 +13,20 @@ export interface Reference { range: Range; } -// TODO match citations in brackets [@citation] inline @citatinon, +// TODO match citations in brackets [@citation] inline @cita_tion, // but also page number in [see @citation p.23] and // inlince @citation [p.23] (so brackets after inline) +// [@citation pp.10-20] matches page 10 +// [@citation p10] without period is also valid +// accept a period @citation.2022 but NOT ending on a period (e.g. ignore the period in @citation. because of end of a sentence) // TODO possibly use https://github.com/martinring/markdown-it-citations/blob/ba82a511de047a2438b4ac060c4c71b5a5c82da9/src/index.ts#L43 export function findReferences(document: TextDocument): Reference[] { const matches: Reference[] = []; for (let lineNr = 0; lineNr < document.lineCount; lineNr++) { const line = document.lineAt(lineNr); let match: RegExpExecArray | null; - let regex = /(?<=@)([\w\.]+)[, ]*\[?(?:[p]{0,2}\.)?(\d+)?(?:-+\d+)?\]?/g; + + let regex = /(?<=@)([\w\.]+)(?