Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ https://github.com/deton/AndroidTUTCode/releases に apk ファイルがあり
* 辞書を交ぜ書き変換辞書におきかえ。
* 後置型部首合成変換機能追加
* 後置型カタカナ置換機能追加
* 後置型交ぜ書き変換開始機能追加(読みの文字数指定要)
* ASCIIモードに移行するキーと設定を追加。
かなキーのトグル動作だと、現在のモードの意識が必要で面倒なので。

Expand All @@ -47,6 +48,14 @@ https://github.com/deton/AndroidTUTCode/releases に apk ファイルがあり
| |@tglkata|ひらがなカタカナモードのトグル|
|alj|@maze |前置型交ぜ書き変換の読み入力開始|
|ald|@Bushu |後置型部首合成変換。カーソル直前の2文字を部首合成後の漢字に置換|
|m1 |@Maze1 |後置型交ぜ書き変換を開始。読み1文字|
|m2 |@Maze2 |後置型交ぜ書き変換を開始。読み2文字|
| |... | |
|m9 |@Maze9 |後置型交ぜ書き変換を開始。読み9文字|
|n1 |@MazeK1 |後置型交ぜ書き変換を開始(活用する語。読みに―を追加)。読み1文字|
|n2 |@MazeK2 |後置型交ぜ書き変換を開始(活用する語。読みに―を追加)。読み2文字|
| |... | |
|n9 |@MazeK9 |後置型交ぜ書き変換を開始(活用する語。読みに―を追加)。読み9文字|
|k0 |@Kata0 |後置型カタカナ置換。カタカナを伸ばす。連続するひらがな|
|k1 |@Kata1 |後置型カタカナ置換。カタカナを1文字伸ばす|
|k2 |@Kata2 |後置型カタカナ置換。カタカナを2文字伸ばす|
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
applicationId "io.github.deton.androidtutcode"
minSdkVersion 14
targetSdkVersion 30
versionCode 4
versionName "1.1.0"
versionCode 5
versionName "1.2.0"
}

buildTypes {
Expand Down
18 changes: 18 additions & 0 deletions app/src/main/assets/romajimap.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
alj @maze
ald @Bushu
m1 @Maze1
m2 @Maze2
m3 @Maze3
m4 @Maze4
m5 @Maze5
m6 @Maze6
m7 @Maze7
m8 @Maze8
m9 @Maze9
n1 @MazeK1
n2 @MazeK2
n3 @MazeK3
n4 @MazeK4
n5 @MazeK5
n6 @MazeK6
n7 @MazeK7
n8 @MazeK8
n9 @MazeK9
k1 @Kata1
k2 @Kata2
k3 @Kata3
Expand Down
39 changes: 37 additions & 2 deletions app/src/main/java/jp/deadend/noname/skk/engine/SKKEngine.kt
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,41 @@ class SKKEngine(
}
}

/**
* 後置型交ぜ書き置換を開始。
* @param nchars 読みの文字数
* @param isKatuyo 活用する語として変換を開始するかどうか
*/
fun startPostMaze(nchars: Int, isKatuyo: Boolean) {
mComposing.setLength(0)
setComposingTextSKK("", 1)
var yomi: CharSequence
val firstEntry = mRegistrationStack.peekFirst()?.entry
if (firstEntry != null) {
yomi = firstEntry.takeLast(nchars)
if (yomi.length != nchars) {
return
}
firstEntry.setLength(firstEntry.length - nchars)
} else {
val ic = mService.currentInputConnection ?: return
yomi = ic.getTextBeforeCursor(nchars, 0) ?: return
if (yomi.length != nchars) {
return
}
ic.deleteSurroundingText(nchars, 0)
}
mKanjiKey.setLength(0)
mKanjiKey.append(yomi)
if (isKatuyo) {
// 交ぜ書き変換辞書に活用する語として登録されている読みで検索する
mKanjiKey.append("―")
}
changeState(SKKKanjiState)
setComposingTextSKK(mKanjiKey, 1)
conversionStart(mKanjiKey)
}

// 後置型部首合成変換
fun changeLastCharsByBushuConv() {
fun bushuconv(cs: CharSequence, commitFunc: (kanji: String) -> Unit) {
Expand All @@ -406,8 +441,8 @@ class SKKEngine(
}
}
mKanjiKey.isEmpty() -> {
val firstEntry = mRegistrationStack.peekFirst()?.entry
if (firstEntry != null) {
val firstEntry = mRegistrationStack.peekFirst()?.entry
if (firstEntry != null) {
val cs = firstEntry.takeLast(2)
bushuconv(cs) { kanji ->
firstEntry.setLength(firstEntry.length - 2)
Expand Down
54 changes: 54 additions & 0 deletions app/src/main/java/jp/deadend/noname/skk/engine/SKKHiraganaState.kt
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,60 @@ object SKKHiraganaState : SKKState {
context.setComposingTextSKK("", 1);
context.changeLastCharsToKatakana(-6)
}
"@Maze1" -> { // 後置型交ぜ書き変換開始。読み1文字
context.startPostMaze(1, false)
}
"@Maze2" -> { // 後置型交ぜ書き変換開始。読み2文字
context.startPostMaze(2, false)
}
"@Maze3" -> { // 後置型交ぜ書き変換開始。読み3文字
context.startPostMaze(3, false)
}
"@Maze4" -> { // 後置型交ぜ書き変換開始。読み4文字
context.startPostMaze(4, false)
}
"@Maze5" -> { // 後置型交ぜ書き変換開始。読み5文字
context.startPostMaze(5, false)
}
"@Maze6" -> { // 後置型交ぜ書き変換開始。読み6文字
context.startPostMaze(6, false)
}
"@Maze7" -> { // 後置型交ぜ書き変換開始。読み7文字
context.startPostMaze(7, false)
}
"@Maze8" -> { // 後置型交ぜ書き変換開始。読み8文字
context.startPostMaze(8, false)
}
"@Maze9" -> { // 後置型交ぜ書き変換開始。読み9文字
context.startPostMaze(9, false)
}
"@MazeK1" -> { // 後置型交ぜ書き変換開始(活用する語)。読み1文字
context.startPostMaze(1, true)
}
"@MazeK2" -> { // 後置型交ぜ書き変換開始(活用する語)。読み2文字
context.startPostMaze(2, true)
}
"@MazeK3" -> { // 後置型交ぜ書き変換開始(活用する語)。読み3文字
context.startPostMaze(3, true)
}
"@MazeK4" -> { // 後置型交ぜ書き変換開始(活用する語)。読み4文字
context.startPostMaze(4, true)
}
"@MazeK5" -> { // 後置型交ぜ書き変換開始(活用する語)。読み5文字
context.startPostMaze(5, true)
}
"@MazeK6" -> { // 後置型交ぜ書き変換開始(活用する語)。読み6文字
context.startPostMaze(6, true)
}
"@MazeK7" -> { // 後置型交ぜ書き変換開始(活用する語)。読み7文字
context.startPostMaze(7, true)
}
"@MazeK8" -> { // 後置型交ぜ書き変換開始(活用する語)。読み8文字
context.startPostMaze(8, true)
}
"@MazeK9" -> { // 後置型交ぜ書き変換開始(活用する語)。読み9文字
context.startPostMaze(9, true)
}
else -> commitFunc(context, hchr) // 確定できるものがあれば確定
}
}
Expand Down
54 changes: 54 additions & 0 deletions app/src/main/java/jp/deadend/noname/skk/engine/SKKKanjiState.kt
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,60 @@ object SKKKanjiState : SKKState {
"@Kata-6" -> { // 後置型カタカナ置換。カタカナを伸ばす。連続するひらがな(6文字残す)
context.changeLastCharsToKatakana(-6)
}
"@Maze1" -> { // 後置型交ぜ書き変換開始
composing.setLength(0) // 無視する。XXX:読みの長さを変更する?
}
"@Maze2" -> {
composing.setLength(0)
}
"@Maze3" -> {
composing.setLength(0)
}
"@Maze4" -> {
composing.setLength(0)
}
"@Maze5" -> {
composing.setLength(0)
}
"@Maze6" -> {
composing.setLength(0)
}
"@Maze7" -> {
composing.setLength(0)
}
"@Maze8" -> {
composing.setLength(0)
}
"@Maze9" -> {
composing.setLength(0)
}
"@MazeK1" -> { // 後置型交ぜ書き変換開始(活用する語)
composing.setLength(0) // 無視する。XXX:読みの長さを変更する?
}
"@MazeK2" -> {
composing.setLength(0)
}
"@MazeK3" -> {
composing.setLength(0)
}
"@MazeK4" -> {
composing.setLength(0)
}
"@MazeK5" -> {
composing.setLength(0)
}
"@MazeK6" -> {
composing.setLength(0)
}
"@MazeK7" -> {
composing.setLength(0)
}
"@MazeK8" -> {
composing.setLength(0)
}
"@MazeK9" -> {
composing.setLength(0)
}
else -> { // ローマ字シーケンスに対応するかな/漢字があった→hchr
composing.setLength(0)
kanjiKey.append(hchr)
Expand Down
8 changes: 8 additions & 0 deletions tcode.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
fj @maze
77 @Bushu
18 @Maze1
28 @Maze2
38 @Maze3
48 @Maze4
29 @MazeK2
39 @MazeK3
49 @MazeK4
59 @MazeK5
,1 借
.1 須
p1 象
Expand Down
18 changes: 18 additions & 0 deletions tutcode.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
' @tglkata
alj @maze
ald @Bushu
m1 @Maze1
m2 @Maze2
m3 @Maze3
m4 @Maze4
m5 @Maze5
m6 @Maze6
m7 @Maze7
m8 @Maze8
m9 @Maze9
n1 @MazeK1
n2 @MazeK2
n3 @MazeK3
n4 @MazeK4
n5 @MazeK5
n6 @MazeK6
n7 @MazeK7
n8 @MazeK8
n9 @MazeK9
k1 @Kata1
k2 @Kata2
k3 @Kata3
Expand Down