mirror of
https://github.com/logseq/logseq.git
synced 2026-05-05 03:16:37 +00:00
fix: ordered list numbers
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
(ns frontend.util.list
|
||||
(:require [frontend.util.thingatpt :as thingatpt]
|
||||
[frontend.util.cursor :as cursor]))
|
||||
[frontend.util.cursor :as cursor]
|
||||
[clojure.string :as string]
|
||||
[frontend.util :as util]))
|
||||
|
||||
(defn get-prev-item [& [input]]
|
||||
(when-not (cursor/textarea-cursor-first-row? input)
|
||||
@@ -37,3 +39,20 @@
|
||||
(reset! end-pos (:end next-item))))
|
||||
(cursor/move-cursor-to input current-pos)
|
||||
@end-pos)))
|
||||
|
||||
(defn re-order-items
|
||||
[lines start-idx]
|
||||
(loop [lines lines
|
||||
idx start-idx
|
||||
result nil]
|
||||
(let [[line & others] lines]
|
||||
(if (empty? lines)
|
||||
result
|
||||
(let [[_ num-str] (re-find #"^(\d+){1}\." line)
|
||||
num (if num-str (util/safe-parse-int num-str) nil)
|
||||
[idx' result'] (if num
|
||||
(let [idx' (inc idx)
|
||||
line' (string/replace-first line (str num ".") (str idx' "."))]
|
||||
[idx' (if result (str result "\n" line') line')])
|
||||
[idx (str result "\n" line)])]
|
||||
(recur others idx' result'))))))
|
||||
|
||||
Reference in New Issue
Block a user