add 'caseSensitive' field to NORMAL_SEARCH_MODE, so that we know what kind of DFA to build
This commit is contained in:
@@ -7,6 +7,7 @@ struct
|
|||||||
, tempSearchList: PersistentVector.t
|
, tempSearchList: PersistentVector.t
|
||||||
, searchCursorIdx: int
|
, searchCursorIdx: int
|
||||||
, searchScrollColumn: int
|
, searchScrollColumn: int
|
||||||
|
, caseSensitive: bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type app_type =
|
type app_type =
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ struct
|
|||||||
|
|
||||||
fun switchToNormalSearchMode (app: app_type) =
|
fun switchToNormalSearchMode (app: app_type) =
|
||||||
NormalSearchFinish.onSearchChanged
|
NormalSearchFinish.onSearchChanged
|
||||||
(app, "", PersistentVector.empty, 0, 0, #buffer app)
|
(app, "", PersistentVector.empty, 0, 0, true, #buffer app)
|
||||||
|
|
||||||
fun getNumLength (pos, str) =
|
fun getNumLength (pos, str) =
|
||||||
if pos = String.size str then
|
if pos = String.size str then
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
, buffer
|
, buffer
|
||||||
) =
|
) =
|
||||||
let
|
let
|
||||||
@@ -31,6 +32,7 @@ struct
|
|||||||
, tempSearchList = tempSearchList
|
, tempSearchList = tempSearchList
|
||||||
, searchCursorIdx = searchCursorIdx
|
, searchCursorIdx = searchCursorIdx
|
||||||
, searchScrollColumn = searchScrollColumn
|
, searchScrollColumn = searchScrollColumn
|
||||||
|
, caseSensitive = caseSensitive
|
||||||
}
|
}
|
||||||
|
|
||||||
val floatWindowWidth = Real32.fromInt windowWidth
|
val floatWindowWidth = Real32.fromInt windowWidth
|
||||||
@@ -86,6 +88,7 @@ struct
|
|||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
) =
|
) =
|
||||||
let
|
let
|
||||||
val
|
val
|
||||||
@@ -104,6 +107,7 @@ struct
|
|||||||
, tempSearchList = tempSearchList
|
, tempSearchList = tempSearchList
|
||||||
, searchCursorIdx = searchCursorIdx
|
, searchCursorIdx = searchCursorIdx
|
||||||
, searchScrollColumn = searchScrollColumn
|
, searchScrollColumn = searchScrollColumn
|
||||||
|
, caseSensitive = caseSensitive
|
||||||
}
|
}
|
||||||
|
|
||||||
val searchStringPosY = newWindowHeight - TextConstants.ySpace - 5
|
val searchStringPosY = newWindowHeight - TextConstants.ySpace - 5
|
||||||
|
|||||||
@@ -8,7 +8,13 @@ struct
|
|||||||
SearchList.buildRange (buffer, searchString, cursorIdx + 1111)
|
SearchList.buildRange (buffer, searchString, cursorIdx + 1111)
|
||||||
|
|
||||||
fun addChr
|
fun addChr
|
||||||
(app: app_type, searchString, searchCursorIdx, searchScrollColumn, chr) =
|
( app: app_type
|
||||||
|
, searchString
|
||||||
|
, searchCursorIdx
|
||||||
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
|
, chr
|
||||||
|
) =
|
||||||
let
|
let
|
||||||
val {cursorIdx, buffer, ...} = app
|
val {cursorIdx, buffer, ...} = app
|
||||||
|
|
||||||
@@ -36,6 +42,7 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
, buffer
|
, buffer
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
@@ -97,6 +104,7 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
|
, caseSensitive
|
||||||
) =
|
) =
|
||||||
if searchCursorIdx = 0 then
|
if searchCursorIdx = 0 then
|
||||||
app
|
app
|
||||||
@@ -127,12 +135,19 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
, buffer
|
, buffer
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
fun moveLeft
|
fun moveLeft
|
||||||
(app, searchString, tempSearchList, searchCursorIdx, searchScrollColumn) =
|
( app
|
||||||
|
, searchString
|
||||||
|
, tempSearchList
|
||||||
|
, searchCursorIdx
|
||||||
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
|
) =
|
||||||
if searchCursorIdx = 0 then
|
if searchCursorIdx = 0 then
|
||||||
app
|
app
|
||||||
else
|
else
|
||||||
@@ -145,12 +160,19 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
, #buffer app
|
, #buffer app
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
fun moveRight
|
fun moveRight
|
||||||
(app, searchString, tempSearchList, searchCursorIdx, searchScrollColumn) =
|
( app
|
||||||
|
, searchString
|
||||||
|
, tempSearchList
|
||||||
|
, searchCursorIdx
|
||||||
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
|
) =
|
||||||
if searchCursorIdx = String.size searchString then
|
if searchCursorIdx = String.size searchString then
|
||||||
app
|
app
|
||||||
else
|
else
|
||||||
@@ -164,19 +186,32 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
, #buffer app
|
, #buffer app
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
fun update
|
fun update
|
||||||
( app
|
( app
|
||||||
, {searchString, tempSearchList, searchCursorIdx, searchScrollColumn}
|
, { searchString
|
||||||
|
, tempSearchList
|
||||||
|
, searchCursorIdx
|
||||||
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
|
}
|
||||||
, msg
|
, msg
|
||||||
, time
|
, time
|
||||||
) =
|
) =
|
||||||
case msg of
|
case msg of
|
||||||
CHAR_EVENT chr =>
|
CHAR_EVENT chr =>
|
||||||
addChr (app, searchString, searchCursorIdx, searchScrollColumn, chr)
|
addChr
|
||||||
|
( app
|
||||||
|
, searchString
|
||||||
|
, searchCursorIdx
|
||||||
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
|
, chr
|
||||||
|
)
|
||||||
| KEY_BACKSPACE =>
|
| KEY_BACKSPACE =>
|
||||||
backspace
|
backspace
|
||||||
( app
|
( app
|
||||||
@@ -184,6 +219,7 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
|
, caseSensitive
|
||||||
)
|
)
|
||||||
| KEY_ESC => exitToNormalMode app
|
| KEY_ESC => exitToNormalMode app
|
||||||
| KEY_ENTER => saveSearch (app, searchString, tempSearchList, time)
|
| KEY_ENTER => saveSearch (app, searchString, tempSearchList, time)
|
||||||
@@ -194,6 +230,7 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
)
|
)
|
||||||
| ARROW_RIGHT =>
|
| ARROW_RIGHT =>
|
||||||
moveRight
|
moveRight
|
||||||
@@ -202,6 +239,7 @@ struct
|
|||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
)
|
)
|
||||||
| WITH_SEARCH_LIST (searchList, time) =>
|
| WITH_SEARCH_LIST (searchList, time) =>
|
||||||
NormalFinish.withSearchList (app, searchList, time)
|
NormalFinish.withSearchList (app, searchList, time)
|
||||||
@@ -214,6 +252,7 @@ struct
|
|||||||
, searchCursorIdx
|
, searchCursorIdx
|
||||||
, tempSearchList
|
, tempSearchList
|
||||||
, searchScrollColumn
|
, searchScrollColumn
|
||||||
|
, caseSensitive
|
||||||
)
|
)
|
||||||
|
|
||||||
(* In Vim's search mode, the up and down arrows can be used
|
(* In Vim's search mode, the up and down arrows can be used
|
||||||
|
|||||||
Reference in New Issue
Block a user