@@ -149,12 +149,18 @@ class TaskList
149149 @field .dispatchEvent changeEvent
150150
151151 unless changeEvent .defaultPrevented
152- @field .value = TaskList .updateSource (@field .value , index, item .checked )
152+ { result , lineNumber , lineSource } =
153+ TaskList .updateSource (@field .value , index, item .checked )
154+
155+ @field .value = result
153156 changeEvent = createEvent ' change'
154157 @field .dispatchEvent changeEvent
155- changedEvent = createEvent ' tasklist:changed' ,
158+ changedEvent = createEvent ' tasklist:changed' , {
156159 index : index
157160 checked : item .checked
161+ lineNumber : lineNumber
162+ lineSource : lineSource
163+ }
158164 @field .dispatchEvent changedEvent
159165
160166 # Static interface
@@ -220,7 +226,10 @@ class TaskList
220226 split (" \n " )
221227 index = 0
222228 inCodeBlock = false
223- result = for line in source .split (" \n " )
229+ lineNumber
230+ lineSource
231+
232+ result = for line, i in source .split (" \n " )
224233 if inCodeBlock
225234 # Lines inside of a code block are ignored.
226235 if line .match (@endFencesPattern )
@@ -232,13 +241,19 @@ class TaskList
232241 else if line in clean && line .match (@itemPattern )
233242 index += 1
234243 if index == itemIndex
244+ lineNumber = i + 1
245+ lineSource = line
235246 line =
236247 if checked
237248 line .replace (@incompletePattern , @complete )
238249 else
239250 line .replace (@completePattern , @incomplete )
240251 line
241- result .join (" \n " )
252+ return {
253+ result : result .join (" \n " )
254+ lineNumber : lineNumber
255+ lineSource : lineSource
256+ }
242257
243258if typeof jQuery != ' undefined'
244259 jQuery .fn .taskList = (method ) ->
0 commit comments