From 7731a4a599253d30c14fff456c92a4a5cb73aec2 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Sat, 28 Feb 2026 18:25:37 +0900 Subject: [PATCH] Fix a few lints --- lib/_data_ingestion/jmdict/xml_parser.dart | 29 ++++++++++--------- lib/_data_ingestion/tanos-jlpt/overrides.dart | 2 +- lib/_data_ingestion/tanos-jlpt/resolve.dart | 4 +-- lib/const_data/kanji_grades.dart | 7 ++--- lib/const_data/radicals.dart | 2 +- lib/search/word_search/regrouping.dart | 8 ++--- lib/util/lemmatizer/rules.dart | 6 ++-- .../{godan-verbs.dart => godan_verbs.dart} | 0 .../{i-adjectives.dart => i_adjectives.dart} | 0 ...{ichidan-verbs.dart => ichidan_verbs.dart} | 0 lib/util/romaji_transliteration.dart | 22 +++++++------- test/jouyou_kanji_test.dart | 2 +- test/models/create_empty_db_test.dart | 11 ++++--- test/search/filter_kanji_test.dart | 2 +- test/search/kanji_search_test.dart | 6 ++-- test/search/setup_database_connection.dart | 2 +- test/search/word_search_test.dart | 16 +++++----- 17 files changed, 59 insertions(+), 60 deletions(-) rename lib/util/lemmatizer/rules/{godan-verbs.dart => godan_verbs.dart} (100%) rename lib/util/lemmatizer/rules/{i-adjectives.dart => i_adjectives.dart} (100%) rename lib/util/lemmatizer/rules/{ichidan-verbs.dart => ichidan_verbs.dart} (100%) diff --git a/lib/_data_ingestion/jmdict/xml_parser.dart b/lib/_data_ingestion/jmdict/xml_parser.dart index 5e61e00..0941a7c 100644 --- a/lib/_data_ingestion/jmdict/xml_parser.dart +++ b/lib/_data_ingestion/jmdict/xml_parser.dart @@ -10,14 +10,15 @@ List getPriorityValues(XmlElement e, String prefix) { final txt = pri.innerText; if (txt.startsWith('news')) { news = int.parse(txt.substring(4)); - } else if (txt.startsWith('ichi')) + } else if (txt.startsWith('ichi')) { ichi = int.parse(txt.substring(4)); - else if (txt.startsWith('spec')) + } else if (txt.startsWith('spec')) { spec = int.parse(txt.substring(4)); - else if (txt.startsWith('gai')) + } else if (txt.startsWith('gai')) { gai = int.parse(txt.substring(3)); - else if (txt.startsWith('nf')) + } else if (txt.startsWith('nf')) { nf = int.parse(txt.substring(2)); + } } return [news, ichi, spec, gai, nf]; } @@ -79,16 +80,16 @@ List parseJMDictData(XmlElement root) { final List readingEls = []; final List senses = []; - for (final (kanjiNum, k_ele) in entry.findElements('k_ele').indexed) { - final kePri = getPriorityValues(k_ele, 'ke'); + for (final (kanjiNum, kEle) in entry.findElements('k_ele').indexed) { + final kePri = getPriorityValues(kEle, 'ke'); kanjiEls.add( KanjiElement( orderNum: kanjiNum + 1, - info: k_ele + info: kEle .findElements('ke_inf') .map((e) => e.innerText.substring(1, e.innerText.length - 1)) .toList(), - reading: k_ele.findElements('keb').first.innerText, + reading: kEle.findElements('keb').first.innerText, news: kePri[0], ichi: kePri[1], spec: kePri[2], @@ -98,24 +99,24 @@ List parseJMDictData(XmlElement root) { ); } - for (final (orderNum, r_ele) in entry.findElements('r_ele').indexed) { - final rePri = getPriorityValues(r_ele, 're'); - final readingDoesNotMatchKanji = r_ele + for (final (orderNum, rEle) in entry.findElements('r_ele').indexed) { + final rePri = getPriorityValues(rEle, 're'); + final readingDoesNotMatchKanji = rEle .findElements('re_nokanji') .isNotEmpty; readingEls.add( ReadingElement( orderNum: orderNum + 1, readingDoesNotMatchKanji: readingDoesNotMatchKanji, - info: r_ele + info: rEle .findElements('re_inf') .map((e) => e.innerText.substring(1, e.innerText.length - 1)) .toList(), - restrictions: r_ele + restrictions: rEle .findElements('re_restr') .map((e) => e.innerText) .toList(), - reading: r_ele.findElements('reb').first.innerText, + reading: rEle.findElements('reb').first.innerText, news: rePri[0], ichi: rePri[1], spec: rePri[2], diff --git a/lib/_data_ingestion/tanos-jlpt/overrides.dart b/lib/_data_ingestion/tanos-jlpt/overrides.dart index ca52b47..09d1236 100644 --- a/lib/_data_ingestion/tanos-jlpt/overrides.dart +++ b/lib/_data_ingestion/tanos-jlpt/overrides.dart @@ -1,4 +1,4 @@ -const Map<(String?, String), int?> TANOS_JLPT_OVERRIDES = { +const Map<(String?, String), int?> tanosJLPTOverrides = { // N5: (null, 'あなた'): 1223615, (null, 'あの'): 1000430, diff --git a/lib/_data_ingestion/tanos-jlpt/resolve.dart b/lib/_data_ingestion/tanos-jlpt/resolve.dart index 0b38170..943dcd4 100644 --- a/lib/_data_ingestion/tanos-jlpt/resolve.dart +++ b/lib/_data_ingestion/tanos-jlpt/resolve.dart @@ -76,7 +76,7 @@ Future findEntry( if ((entryIds.isEmpty || entryIds.length > 1) && useOverrides) { print('No entry found, trying to fetch from overrides'); final overrideEntries = word.readings - .map((reading) => TANOS_JLPT_OVERRIDES[(word.kanji, reading)]) + .map((reading) => tanosJLPTOverrides[(word.kanji, reading)]) .whereType() .toSet(); @@ -86,7 +86,7 @@ Future findEntry( ); } else if (overrideEntries.isEmpty && !word.readings.any( - (reading) => TANOS_JLPT_OVERRIDES.containsKey((word.kanji, reading)), + (reading) => tanosJLPTOverrides.containsKey((word.kanji, reading)), )) { throw Exception( 'No override entry found for ${word.toString()}: $entryIds', diff --git a/lib/const_data/kanji_grades.dart b/lib/const_data/kanji_grades.dart index 7ca19d7..797650e 100644 --- a/lib/const_data/kanji_grades.dart +++ b/lib/const_data/kanji_grades.dart @@ -1,6 +1,5 @@ /// Jouyou kanji sorted primarily by grades and secondarily by strokes. -const Map>> -JOUYOU_KANJI_BY_GRADE_AND_STROKE_COUNT = { +const Map>> jouyouKanjiByGradeAndStrokeCount = { 1: { 1: ['一'], 2: ['力', '八', '入', '二', '人', '十', '七', '九'], @@ -1861,8 +1860,8 @@ JOUYOU_KANJI_BY_GRADE_AND_STROKE_COUNT = { }, }; -final Map> JOUYOU_KANJI_BY_GRADES = - JOUYOU_KANJI_BY_GRADE_AND_STROKE_COUNT.entries +final Map> jouyouKanjiByGrades = + jouyouKanjiByGradeAndStrokeCount.entries .expand((entry) => entry.value.entries) .map((entry) => MapEntry(entry.key, entry.value)) .fold>>( diff --git a/lib/const_data/radicals.dart b/lib/const_data/radicals.dart index a1dd8d3..bef56e2 100644 --- a/lib/const_data/radicals.dart +++ b/lib/const_data/radicals.dart @@ -1,4 +1,4 @@ -const Map> RADICALS = { +const Map> radicals = { 1: ['一', '|', '丶', 'ノ', '乙', '亅'], 2: [ '二', diff --git a/lib/search/word_search/regrouping.dart b/lib/search/word_search/regrouping.dart index 858d335..7f80b17 100644 --- a/lib/search/word_search/regrouping.dart +++ b/lib/search/word_search/regrouping.dart @@ -54,7 +54,7 @@ List regroupWordSearchResults({ .where((element) => element['entryId'] == scoredEntryId.entryId) .toList(); - final GroupedWordResult entryReadingElementsGrouped = _regroup_words( + final GroupedWordResult entryReadingElementsGrouped = _regroupWords( entryId: scoredEntryId.entryId, readingElements: entryReadingElements, kanjiElements: entryKanjiElements, @@ -64,7 +64,7 @@ List regroupWordSearchResults({ kanjiElementInfos: linearWordQueryData.kanjiElementInfos, ); - final List entrySensesGrouped = _regroup_senses( + final List entrySensesGrouped = _regroupSenses( senses: entrySenses, senseAntonyms: linearWordQueryData.senseAntonyms, senseDialects: linearWordQueryData.senseDialects, @@ -112,7 +112,7 @@ class GroupedWordResult { }); } -GroupedWordResult _regroup_words({ +GroupedWordResult _regroupWords({ required int entryId, required List> kanjiElements, required List> kanjiElementInfos, @@ -195,7 +195,7 @@ GroupedWordResult _regroup_words({ ); } -List _regroup_senses({ +List _regroupSenses({ required List> senses, required List> senseAntonyms, required List> senseDialects, diff --git a/lib/util/lemmatizer/rules.dart b/lib/util/lemmatizer/rules.dart index 94019f1..58331ea 100644 --- a/lib/util/lemmatizer/rules.dart +++ b/lib/util/lemmatizer/rules.dart @@ -1,7 +1,7 @@ import 'package:jadb/util/lemmatizer/lemmatizer.dart'; -import 'package:jadb/util/lemmatizer/rules/godan-verbs.dart'; -import 'package:jadb/util/lemmatizer/rules/i-adjectives.dart'; -import 'package:jadb/util/lemmatizer/rules/ichidan-verbs.dart'; +import 'package:jadb/util/lemmatizer/rules/godan_verbs.dart'; +import 'package:jadb/util/lemmatizer/rules/i_adjectives.dart'; +import 'package:jadb/util/lemmatizer/rules/ichidan_verbs.dart'; List lemmatizationRules = [ ...ichidanVerbLemmatizationRules, diff --git a/lib/util/lemmatizer/rules/godan-verbs.dart b/lib/util/lemmatizer/rules/godan_verbs.dart similarity index 100% rename from lib/util/lemmatizer/rules/godan-verbs.dart rename to lib/util/lemmatizer/rules/godan_verbs.dart diff --git a/lib/util/lemmatizer/rules/i-adjectives.dart b/lib/util/lemmatizer/rules/i_adjectives.dart similarity index 100% rename from lib/util/lemmatizer/rules/i-adjectives.dart rename to lib/util/lemmatizer/rules/i_adjectives.dart diff --git a/lib/util/lemmatizer/rules/ichidan-verbs.dart b/lib/util/lemmatizer/rules/ichidan_verbs.dart similarity index 100% rename from lib/util/lemmatizer/rules/ichidan-verbs.dart rename to lib/util/lemmatizer/rules/ichidan_verbs.dart diff --git a/lib/util/romaji_transliteration.dart b/lib/util/romaji_transliteration.dart index e3a5984..6f56267 100644 --- a/lib/util/romaji_transliteration.dart +++ b/lib/util/romaji_transliteration.dart @@ -1,9 +1,9 @@ // Source: https://github.com/Kimtaro/ve/blob/master/lib/providers/japanese_transliterators.rb -const hiragana_syllabic_n = 'ん'; -const hiragana_small_tsu = 'っ'; +const hiraganaSyllabicN = 'ん'; +const hiraganaSmallTsu = 'っ'; -const Map hiragana_to_latin = { +const Map hiraganaToLatin = { 'あ': 'a', 'い': 'i', 'う': 'u', @@ -209,7 +209,7 @@ const Map hiragana_to_latin = { 'ゟ': 'yori', }; -const Map latin_to_hiragana = { +const Map latinToHiragana = { 'a': 'あ', 'i': 'い', 'u': 'う', @@ -481,9 +481,9 @@ const Map latin_to_hiragana = { '#~': '〜', }; -bool _smallTsu(String forConversion) => forConversion == hiragana_small_tsu; +bool _smallTsu(String forConversion) => forConversion == hiraganaSmallTsu; bool _nFollowedByYuYeYo(String forConversion, String kana) => - forConversion == hiragana_syllabic_n && + forConversion == hiraganaSyllabicN && kana.length > 1 && 'やゆよ'.contains(kana.substring(1, 2)); @@ -505,7 +505,7 @@ String transliterateHiraganaToLatin(String hiragana) { } else if (_nFollowedByYuYeYo(forConversion, kana)) { mora = "n'"; } - mora ??= hiragana_to_latin[forConversion]; + mora ??= hiraganaToLatin[forConversion]; if (mora != null) { if (geminate) { @@ -527,7 +527,7 @@ String transliterateHiraganaToLatin(String hiragana) { bool _doubleNFollowedByAIUEO(String forConversion) => RegExp(r'^nn[aiueo]$').hasMatch(forConversion); bool _hasTableMatch(String forConversion) => - latin_to_hiragana[forConversion] != null; + latinToHiragana[forConversion] != null; bool _hasDoubleConsonant(String forConversion, int length) => forConversion == 'tch' || (length == 2 && @@ -549,12 +549,12 @@ String transliterateLatinToHiragana(String latin) { final String forConversion = romaji.substring(0, length); if (_doubleNFollowedByAIUEO(forConversion)) { - mora = hiragana_syllabic_n; + mora = hiraganaSyllabicN; forRemoval = 1; } else if (_hasTableMatch(forConversion)) { - mora = latin_to_hiragana[forConversion]; + mora = latinToHiragana[forConversion]; } else if (_hasDoubleConsonant(forConversion, length)) { - mora = hiragana_small_tsu; + mora = hiraganaSmallTsu; forRemoval = 1; } diff --git a/test/jouyou_kanji_test.dart b/test/jouyou_kanji_test.dart index f7713d3..5510e9c 100644 --- a/test/jouyou_kanji_test.dart +++ b/test/jouyou_kanji_test.dart @@ -4,6 +4,6 @@ import 'package:test/test.dart'; void main() { test('Assert 2136 kanji in jouyou set', () { - expect(JOUYOU_KANJI_BY_GRADES.values.flattenedToSet.length, 2136); + expect(jouyouKanjiByGrades.values.flattenedToSet.length, 2136); }); } diff --git a/test/models/create_empty_db_test.dart b/test/models/create_empty_db_test.dart index 099d4d0..51b9520 100644 --- a/test/models/create_empty_db_test.dart +++ b/test/models/create_empty_db_test.dart @@ -1,21 +1,20 @@ -import 'dart:ffi'; -import 'dart:io'; - import 'package:jadb/models/create_empty_db.dart'; import 'package:jadb/search.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; // import 'package:sqlite3/open.dart'; import 'package:test/test.dart'; -Future setup_inmemory_database() async { - final dbConnection = await createDatabaseFactoryFfi().openDatabase(':memory:'); +Future setupInMemoryDatabase() async { + final dbConnection = await createDatabaseFactoryFfi().openDatabase( + ':memory:', + ); return dbConnection; } void main() { test('Create empty db', () async { - final db = await setup_inmemory_database(); + final db = await setupInMemoryDatabase(); await createEmptyDb(db); diff --git a/test/search/filter_kanji_test.dart b/test/search/filter_kanji_test.dart index c985a20..ef7d96c 100644 --- a/test/search/filter_kanji_test.dart +++ b/test/search/filter_kanji_test.dart @@ -5,7 +5,7 @@ import 'setup_database_connection.dart'; void main() { test('Filter kanji', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.filterKanji([ 'a', diff --git a/test/search/kanji_search_test.dart b/test/search/kanji_search_test.dart index 0e3f445..87c2c49 100644 --- a/test/search/kanji_search_test.dart +++ b/test/search/kanji_search_test.dart @@ -6,16 +6,16 @@ import 'setup_database_connection.dart'; void main() { test('Search a kanji', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchKanji('漢'); expect(result, isNotNull); }); group('Search all jouyou kanji', () { - JOUYOU_KANJI_BY_GRADES.forEach((grade, characters) { + jouyouKanjiByGrades.forEach((grade, characters) { test('Search all kanji in grade $grade', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); for (final character in characters) { final result = await connection.jadbSearchKanji(character); diff --git a/test/search/setup_database_connection.dart b/test/search/setup_database_connection.dart index a7fe8b4..c4d2842 100644 --- a/test/search/setup_database_connection.dart +++ b/test/search/setup_database_connection.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:jadb/_data_ingestion/open_local_db.dart'; import 'package:sqflite_common/sqlite_api.dart'; -Future setup_database_connection() async { +Future setupDatabaseConnection() async { final libSqlitePath = Platform.environment['LIBSQLITE_PATH']; final jadbPath = Platform.environment['JADB_PATH']; diff --git a/test/search/word_search_test.dart b/test/search/word_search_test.dart index 287d5fd..0f80883 100644 --- a/test/search/word_search_test.dart +++ b/test/search/word_search_test.dart @@ -5,43 +5,43 @@ import 'setup_database_connection.dart'; void main() { test('Search a word - english - auto', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchWord('kana'); expect(result, isNotNull); }); test('Get word search count - english - auto', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchWordCount('kana'); expect(result, isNotNull); }); test('Search a word - japanese kana - auto', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchWord('かな'); expect(result, isNotNull); }); test('Get word search count - japanese kana - auto', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchWordCount('かな'); expect(result, isNotNull); }); test('Search a word - japanese kanji - auto', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchWord('仮名'); expect(result, isNotNull); }); test('Get word search count - japanese kanji - auto', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchWordCount('仮名'); expect(result, isNotNull); }); test('Get a word by id', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); final result = await connection.jadbGetWordById(1577090); expect(result, isNotNull); }); @@ -49,7 +49,7 @@ void main() { test( 'Serialize all words', () async { - final connection = await setup_database_connection(); + final connection = await setupDatabaseConnection(); // Test serializing all words for (final letter in 'aiueoksthnmyrw'.split('')) {