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
100 changes: 100 additions & 0 deletions resources/runtime/language/korean100
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
하다
있다
되다
않다
없다
사람
우리
아니다
보다
같다
주다
대하다
가다
이것
말하다
위하다
그러나
오다
알다
좋다
받다
그것
모르다
그래서
많다
어떤
먹다
자신
살다
생각하다
가지다
시간
보이다
크다
나오다
싶다
쓰다
그렇다
문제
그런
여자
어디
나라
만들다
경우
어떻다
놓다
사이
다시
아이
다른
이렇다
지금
여기
모두
누구
하나
들다
가장
많이
마음
아직
매우
아버지
아주
그때
소리
지나다
이제
200 changes: 200 additions & 0 deletions resources/runtime/language/korean200
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
하다
있다
되다
않다
없다
사람
우리
아니다
보다
같다
주다
대하다
가다
이것
말하다
위하다
그러나
오다
알다
좋다
받다
그것
모르다
그래서
많다
어떤
먹다
자신
살다
생각하다
가지다
시간
보이다
크다
나오다
싶다
쓰다
그렇다
문제
그런
여자
어디
나라
만들다
경우
어떻다
놓다
사이
다시
아이
다른
이렇다
지금
여기
모두
누구
하나
들다
가장
많이
마음
아직
매우
아버지
아주
그때
소리
지나다
이제
내다
바로
사회
어머니
정도
학교
넣다
따르다
이러하다
그러하다
이상
나다
세계
열다
남자
생각
죽다
사실
오늘
무엇
근데
도시
관계
선생님
이유
읽다
이런
필요
때문
시작하다
의미
다르다
얼굴
맞다
듣다
찾다
죽음
이야기
웃다
나가다
일하다
얼마
기다리다
나타나다
아들
가능
노래
마시다
결국
바라보다
이름
함께
그리고
가슴
오래
작다
타다
치다
그냥
벌써
시작
아침
인간
웃음
서다
마지막
세상
걸다
기억
부르다
놀다
갖다
생활
움직이다
나이
22 changes: 20 additions & 2 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ use crossterm::{
execute, terminal,
};
use rand::{seq::SliceRandom, thread_rng};
use ratatui::{backend::CrosstermBackend, terminal::Terminal};
use ratatui::{
backend::CrosstermBackend,
layout::{Constraint, Direction, Layout},
terminal::Terminal,
};
use rust_embed::RustEmbed;
use std::{
ffi::OsString,
Expand Down Expand Up @@ -197,7 +201,21 @@ impl State {
match self {
State::Test(test) => {
terminal.draw(|f| {
f.render_widget(config.theme.apply_to(test), f.size());
let area = f.size();
f.render_widget(config.theme.apply_to(test), area);

// Position cursor at end of input for IME composition support
let chunks = Layout::default()
.direction(Direction::Vertical)
.constraints([Constraint::Length(3), Constraint::Length(6)])
.split(area);
let inner_x = chunks[0].x + 1;
let inner_y = chunks[0].y + 1;
let progress_width =
ratatui::text::Line::from(test.words[test.current_word].progress.as_str())
.width() as u16;
let max_cursor_x = chunks[0].right().saturating_sub(2);
f.set_cursor((inner_x + progress_width).min(max_cursor_x), inner_y);
})?;
}
State::Results(results) => {
Expand Down
Loading