Skip to content

Commit

Permalink
Moved rope chunk iter and styled chunk iter out of rope_utils
Browse files Browse the repository at this point in the history
  • Loading branch information
Nimaoth committed Feb 1, 2025
1 parent b9e3109 commit 06de741
Show file tree
Hide file tree
Showing 9 changed files with 1,113 additions and 448 deletions.
678 changes: 678 additions & 0 deletions src/misc/rope_regex.nim

Large diffs are not rendered by default.

444 changes: 1 addition & 443 deletions src/misc/rope_utils.nim

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/text/diff_map.nim
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import std/[options, strutils, atomics, strformat, sequtils, tables, algorithm]
import nimsumtree/[rope, buffer, clock]
import misc/[custom_async, custom_unicode, util, timer, event, rope_utils]
import diff, overlay_map, wrap_map
import diff, syntax_map, overlay_map, wrap_map
from scripting_api import Selection
import nimsumtree/sumtree except mapIt

Expand Down
21 changes: 20 additions & 1 deletion src/text/display_map.nim
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import std/[options, strutils, atomics, strformat, sequtils, tables, algorithm, sugar]
import nimsumtree/[rope, buffer, clock]
import misc/[custom_async, custom_unicode, util, timer, event, rope_utils]
import overlay_map, tab_map, wrap_map, diff_map
import syntax_map, overlay_map, tab_map, wrap_map, diff_map
from scripting_api import Selection
import nimsumtree/sumtree except mapIt

Expand All @@ -20,10 +20,29 @@ template log(msg: untyped) =
{.push raises: [].}

type
DisplayPoint* {.borrow: `.`.} = distinct Point

DisplayChunk* = object
diffChunk*: DiffChunk
displayPoint*: DisplayPoint

func displayPoint*(row: Natural = 0, column: Natural = 0): DisplayPoint = Point(row: row.uint32, column: column.uint32).DisplayPoint
func `$`*(a: DisplayPoint): string {.borrow.}
func `<`*(a: DisplayPoint, b: DisplayPoint): bool {.borrow.}
func `<=`*(a: DisplayPoint, b: DisplayPoint): bool {.borrow.}
func `==`*(a: DisplayPoint, b: DisplayPoint): bool {.borrow.}
func `+`*(a: DisplayPoint, b: DisplayPoint): DisplayPoint {.borrow.}
func `+`*(point: DisplayPoint, diff: PointDiff): DisplayPoint {.borrow.}
func `+=`*(a: var DisplayPoint, b: DisplayPoint) {.borrow.}
func `+=`*(point: var DisplayPoint, diff: PointDiff) {.borrow.}
func `-`*(a: DisplayPoint, b: DisplayPoint): PointDiff {.borrow.}
func dec*(a: var DisplayPoint): DisplayPoint {.borrow.}
func pred*(a: DisplayPoint): DisplayPoint {.borrow.}
func clone*(a: DisplayPoint): DisplayPoint {.borrow.}
func cmp*(a: DisplayPoint, b: DisplayPoint): int {.borrow.}
func clamp*(p: DisplayPoint, r: Range[DisplayPoint]): DisplayPoint = min(max(p, r.a), r.b)
converter toDisplayPoint*(diff: PointDiff): DisplayPoint = diff.toPoint.DisplayPoint

func point*(self: DisplayChunk): Point {.inline.} = self.diffChunk.point
func endPoint*(self: DisplayChunk): Point {.inline.} = self.diffChunk.endPoint
func displayEndPoint*(self: DisplayChunk): DisplayPoint {.inline.} = displayPoint(self.displayPoint.row, self.displayPoint.column + self.diffChunk.len.uint32)
Expand Down
1 change: 1 addition & 0 deletions src/text/overlay_map.nim
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import std/[options, strutils, atomics, strformat, sequtils, tables, algorithm]
import nimsumtree/[rope, sumtree, buffer, clock, static_array]
import misc/[custom_async, custom_unicode, util, timer, event, rope_utils]
import text/diff
import syntax_map
from scripting_api import Selection

{.push warning[Deprecated]:off.}
Expand Down
Loading

0 comments on commit 06de741

Please sign in to comment.