From 5ca884fff1720351211c7e41de6bed81d616ff95 Mon Sep 17 00:00:00 2001 From: Luxorum <31709472+Luxorum@users.noreply.github.com> Date: Tue, 25 Apr 2023 17:19:37 +0300 Subject: [PATCH] Document public members, where it is necessary (#13) * Document public members, where it is necessary * Fix after review * Fix after review * Fix after review * Fix after review --- lib/domain/language_check_service.dart | 3 +++ lib/domain/mistake.dart | 13 +++++++++++++ lib/implementations/debounce_lang_tool_service.dart | 5 +++++ lib/implementations/lang_tool_service.dart | 3 +++ .../throttling_lang_tool_service.dart | 6 ++++++ lib/presentation/language_tool_text_field.dart | 9 +++++++++ 6 files changed, 39 insertions(+) diff --git a/lib/domain/language_check_service.dart b/lib/domain/language_check_service.dart index 1e80726..16843d9 100644 --- a/lib/domain/language_check_service.dart +++ b/lib/domain/language_check_service.dart @@ -1,7 +1,10 @@ import 'package:languagetool_textfield/domain/mistake.dart'; +/// A base language check service. abstract class LanguageCheckService { + /// Creates a new instance of the [LanguageCheckService] class. const LanguageCheckService(); + /// Returns found mistakes in the given [text]. Future> findMistakes(String text); } diff --git a/lib/domain/mistake.dart b/lib/domain/mistake.dart index 731fff2..ecbd3a8 100644 --- a/lib/domain/mistake.dart +++ b/lib/domain/mistake.dart @@ -1,10 +1,23 @@ +/// A data model class that stores information about a single writing mistake. class Mistake { + /// A brief description of the mistake. final String message; + + /// A type of this mistake. final String type; + + /// A position of the beginning of this mistake. final int offset; + + /// A length of this mistake after the offset. final int length; + + /// A list of suggestions for replacing this mistake. + /// + /// Sorted by probability. final List replacements; + /// Creates a new instance of the [Mistake] class. const Mistake({ required this.message, required this.type, diff --git a/lib/implementations/debounce_lang_tool_service.dart b/lib/implementations/debounce_lang_tool_service.dart index 7599dff..ed14755 100644 --- a/lib/implementations/debounce_lang_tool_service.dart +++ b/lib/implementations/debounce_lang_tool_service.dart @@ -2,10 +2,15 @@ import 'package:languagetool_textfield/domain/language_check_service.dart'; import 'package:languagetool_textfield/domain/mistake.dart'; import 'package:throttling/throttling.dart'; +/// A language check service with debouncing. class DebounceLangToolService extends LanguageCheckService { + /// A base language check service. final LanguageCheckService baseService; + + /// A debouncing used to debounce the API calls. final Debouncing debouncing; + /// Creates a new instance of the [DebounceLangToolService] class. DebounceLangToolService( this.baseService, Duration debouncingDuration, diff --git a/lib/implementations/lang_tool_service.dart b/lib/implementations/lang_tool_service.dart index 2a16cb2..923b21c 100644 --- a/lib/implementations/lang_tool_service.dart +++ b/lib/implementations/lang_tool_service.dart @@ -2,9 +2,12 @@ import 'package:language_tool/language_tool.dart'; import 'package:languagetool_textfield/domain/language_check_service.dart'; import 'package:languagetool_textfield/domain/mistake.dart'; +/// An implementation of language check service with language tool service. class LangToolService extends LanguageCheckService { + /// An instance of this class that is used to interact with LanguageTool API. final LanguageTool languageTool; + /// Creates a new instance of the [LangToolService]. const LangToolService(this.languageTool); @override diff --git a/lib/implementations/throttling_lang_tool_service.dart b/lib/implementations/throttling_lang_tool_service.dart index 90f424e..139358c 100644 --- a/lib/implementations/throttling_lang_tool_service.dart +++ b/lib/implementations/throttling_lang_tool_service.dart @@ -2,10 +2,16 @@ import 'package:languagetool_textfield/domain/language_check_service.dart'; import 'package:languagetool_textfield/domain/mistake.dart'; import 'package:throttling/throttling.dart'; +/// A language check service with debouncing. class ThrottlingLangToolService extends LanguageCheckService { + /// A base language check service that is used to interact + /// with the language check API. final LanguageCheckService baseService; + + /// A throttling used to throttle the API calls. final Throttling throttling; + /// Creates a new instance of the [ThrottlingLangToolService] class. ThrottlingLangToolService( this.baseService, Duration throttlingDuration, diff --git a/lib/presentation/language_tool_text_field.dart b/lib/presentation/language_tool_text_field.dart index 047f4ff..0652baf 100644 --- a/lib/presentation/language_tool_text_field.dart +++ b/lib/presentation/language_tool_text_field.dart @@ -1,12 +1,21 @@ import 'package:flutter/material.dart'; import 'package:languagetool_textfield/domain/language_check_service.dart'; +/// A TextField widget that checks the grammar using the given [langService] class LanguageToolTextField extends StatefulWidget { + /// A service for checking errors. final LanguageCheckService langService; + + /// A style to use for the text being edited. final TextStyle style; + + /// A decoration of this [TextField]. final InputDecoration decoration; + + /// A builder function used to build errors. final Widget Function()? mistakeBuilder; + /// Creates a widget that checks grammar errors. const LanguageToolTextField({ Key? key, required this.langService,