/// ------------------------------------------------------------------------------------ /// <summary> /// Gets the error message given the style's reason for capitalization. /// </summary> /// <param name="dataSource">The data source.</param> /// <param name="capReasonType">Reason why a character should have been capitalized.</param> /// <param name="styleName">Name of the style or string.Empty if not relevant.</param> /// <returns>error message.</returns> /// ------------------------------------------------------------------------------------ internal static string GetErrorMessage(IChecksDataSource dataSource, StyleCapInfo.CapCheckTypes capReasonType, string styleName) { switch (capReasonType) { case StyleCapInfo.CapCheckTypes.SentenceInitial: return(dataSource.GetLocalizedString("Sentence should begin with a capital letter")); case StyleCapInfo.CapCheckTypes.Heading: return(dataSource.GetLocalizedString("Heading should begin with a capital letter")); case StyleCapInfo.CapCheckTypes.Title: return(dataSource.GetLocalizedString("Title should begin with a capital letter")); case StyleCapInfo.CapCheckTypes.List: return(dataSource.GetLocalizedString("List paragraphs should begin with a capital letter")); case StyleCapInfo.CapCheckTypes.Table: return(dataSource.GetLocalizedString("Table contents should begin with a capital letter")); case StyleCapInfo.CapCheckTypes.ProperNoun: return(dataSource.GetLocalizedString("Proper nouns should begin with a capital letter")); case StyleCapInfo.CapCheckTypes.Special: return(String.Format(dataSource.GetLocalizedString( "Text in the {0} style should begin with a capital letter"), styleName)); } throw new Exception("Reason for capitalizing the style " + styleName + " is not handled in GetErrorMessage (" + capReasonType.ToString() + ")"); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="ProcessSentenceFinalPunct"/> class. /// </summary> /// <param name="checksDataSource">The source of data for Scripture checking.</param> /// <param name="allCapitalizedStyles">Dictionary keyed by the style name containing the /// type of style (character/paragraph) and a value indicating why it should begin with /// a capital.</param> /// ------------------------------------------------------------------------------------ public CapitalizationProcessor(IChecksDataSource checksDataSource, Dictionary <string, StyleCapInfo> allCapitalizedStyles) { m_checksDataSource = checksDataSource; m_categorizer = checksDataSource.CharacterCategorizer; m_abbreviations = checksDataSource.GetParameterValue("Abbreviations").Split(); m_allCapitalizedStyles = allCapitalizedStyles; string sentenceFinalPunc = checksDataSource.GetParameterValue("SentenceFinalPunctuation"); if (!string.IsNullOrEmpty(sentenceFinalPunc)) { foreach (char ch in sentenceFinalPunc) { m_validSentenceFinalPuncts.Add(ch); } } else { // No punctuation is set up for this writing system that contains sentence-final punctuation. // Define sentence-final punctuation with these characters as a fallback: '.', '?', and '!' m_validSentenceFinalPuncts.Add('.'); m_validSentenceFinalPuncts.Add('?'); m_validSentenceFinalPuncts.Add('!'); } }
/// ------------------------------------------------------------------------------------ /// <summary> /// /// </summary> /// ------------------------------------------------------------------------------------ public ProcessMatchedPairTokens(IChecksDataSource checksDataSource, MatchedPairList pairList, StyleCategorizer styleCategorizer) { m_checksDataSource = checksDataSource; m_pairList = pairList; m_styleCategorizer = styleCategorizer; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Reads the current TE scripture project. /// </summary> /// ------------------------------------------------------------------------------------ private List <TextTokenSubstring> ReadTEScripture() { IChecksDataSource scrDataSource = ReflectionHelper.CreateObject("ScrFDO.dll", "SIL.FieldWorks.FDO.Scripture.ScrChecksDataSource", new object[] { m_cache }) as IChecksDataSource; if (scrDataSource == null) { return(null); } Assembly asm = Assembly.LoadFile(m_scrChecksDllFile); if (asm == null) { return(null); } Type type = asm.GetType("SILUBS.ScriptureChecks." + m_checkToRun); IScrCheckInventory scrCharInventoryBldr = Activator.CreateInstance(type, scrDataSource) as IScrCheckInventory; if (scrCharInventoryBldr == null) { return(null); } List <ITextToken> tokens = new List <ITextToken>(); IScripture scr = m_cache.LangProject.TranslatedScriptureOA; if (scr == null || scr.ScriptureBooksOS.Count == 0) { return(null); } foreach (IScrBook book in scr.ScriptureBooksOS) { if (scrDataSource.GetText(book.CanonicalNum, 0)) { tokens.AddRange(scrDataSource.TextTokens()); } } foreach (KeyValuePair <string, string> kvp in m_chkParams) { scrDataSource.SetParameterValue(kvp.Key, kvp.Value); } scrDataSource.SetParameterValue("PreferredLocale", string.Empty); if (tokens.Count == 0) { return(null); } return(GetTokenSubstrings(scrCharInventoryBldr, tokens)); }
/// ------------------------------------------------------------------------------------ /// <summary> /// /// </summary> /// <param name="checksDataSource"></param> /// <param name="result"></param> /// ------------------------------------------------------------------------------------ public ProcessMixedCapitalization(IChecksDataSource checksDataSource, List <TextTokenSubstring> result) { m_categorizer = checksDataSource.CharacterCategorizer; m_result = result; m_uncapitalizedPrefixes = new List <string>( checksDataSource.GetParameterValue("UncapitalizedPrefixes").Split()); m_capitalizedSuffixes = new List <string>( checksDataSource.GetParameterValue("CapitalizedSuffixes").Split()); m_capitalizedPrefixes = new List <string>( checksDataSource.GetParameterValue("CapitalizedPrefixes").Split()); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="MatchedPairsCheck"/> class. /// </summary> /// <param name="checksDataSource">The checks data source.</param> /// ------------------------------------------------------------------------------------ public MatchedPairsCheck(IChecksDataSource checksDataSource) { m_checksDataSource = checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="CharactersCheck"/> class. /// </summary> /// ------------------------------------------------------------------------------------ public CharactersCheck(IChecksDataSource _checksDataSource) { m_checksDataSource = _checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// /// </summary> /// <param name="checksDataSource"></param> /// <param name="result"></param> /// ------------------------------------------------------------------------------------ public ProcessMixedCapitalization(IChecksDataSource checksDataSource, List<TextTokenSubstring> result) { m_categorizer = checksDataSource.CharacterCategorizer; m_result = result; m_uncapitalizedPrefixes = new List<string>( checksDataSource.GetParameterValue("UncapitalizedPrefixes").Split()); m_capitalizedSuffixes = new List<string>( checksDataSource.GetParameterValue("CapitalizedSuffixes").Split()); m_capitalizedPrefixes = new List<string>( checksDataSource.GetParameterValue("CapitalizedPrefixes").Split()); }
private static IScrCheckInventory CreateScrCharInventoryBldr(string checksDll, IChecksDataSource scrDataSource, string checkType) { var scrCharInventoryBldr = (IScrCheckInventory)ReflectionHelper.CreateObject(checksDll, checkType, new object[] { scrDataSource }); return(scrCharInventoryBldr); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="QuotationRelatedTokensProcessor"/> class. /// </summary> /// <param name="source">The checks data source.</param> /// <param name="charCategorizer">The character categorizer.</param> /// <param name="qmCategorizer">The quotation mark categorizer.</param> /// <param name="desiredKey">The desired key (can be string.Empty).</param> /// <param name="results">The result.</param> /// ------------------------------------------------------------------------------------ internal QTokenProcessor(IChecksDataSource dataSource, CharacterCategorizer charCategorizer, QuotationMarkCategorizer qmCategorizer, string desiredKey, List<TextTokenSubstring> results) { m_chkDataSource = dataSource; m_charCategorizer = charCategorizer; m_qmCategorizer = qmCategorizer; m_desiredKey = desiredKey; m_results = results; m_verboseQuotes = (m_chkDataSource.GetParameterValue("VerboseQuotes") == "Yes"); m_noCloserMsg = Localize("Unmatched opening mark: level {0}"); m_noOpenerMsg = Localize("Unmatched closing mark: level {0}"); m_regExQuotes = new Regex(qmCategorizer.Pattern); m_regExNonQuotes = new Regex(string.Format("[^{0}|\\s]", qmCategorizer.Pattern.Replace("]", "\\]"))); // Make sure brackets are escaped }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="T:ChapterVerseCheck"/> class. This /// overload of the constructor is only used for testing. /// </summary> /// <param name="checksDataSource">The checks data source.</param> /// <param name="recErrHandler">The error recording handler.</param> /// ------------------------------------------------------------------------------------ public ChapterVerseCheck(IChecksDataSource checksDataSource, RecordErrorHandler recErrHandler) { m_checksDataSource = checksDataSource; m_recordError = recErrHandler; }
// /// <summary>Verses encountered in current chapter</summary> // private List<int> m_versesFound; /// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="T:ChapterVerseCheck"/> class. /// </summary> /// <param name="checksDataSource">The checks data source.</param> /// ------------------------------------------------------------------------------------ public ChapterVerseCheck(IChecksDataSource checksDataSource) : this(checksDataSource, null) { }
// /// <summary>string containing punctuation that ends sentences.</summary> // string m_SentenceFinalPunc = null; #endregion /// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="CapitalizationCheck"/> class. /// </summary> /// <param name="_checksDataSource">The data source for the check.</param> /// ------------------------------------------------------------------------------------ public CapitalizationCheck(IChecksDataSource _checksDataSource) { m_chkDataSource = _checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="QuotationCheck"/> class. /// ------------------------------------------------------------------------------------ public QuotationCheck(IChecksDataSource checksDataSource) { m_chkDataSource = checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="QuotationMarkCategorizer"/> class. /// </summary> /// ------------------------------------------------------------------------------------ internal QuotationMarkCategorizer(IChecksDataSource source) { m_quoteMarks = QuotationMarksList.Load(source.GetParameterValue("QuotationMarkInfo"), source.GetParameterValue("DefaultWritingSystemName")); m_styleInfo = StylePropsInfo.Load(source.GetParameterValue("StylesInfo")); CollapseAdjacentQuotes = source.GetParameterValue("CollapseAdjacentQuotes") == "No"; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="PunctuationCheck"/> class. /// </summary> /// <param name="checksDataSource">The checks data source.</param> /// ------------------------------------------------------------------------------------ public PunctuationCheck(IChecksDataSource checksDataSource) { m_checksDataSource = checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Gets the error message given the style's reason for capitalization. /// </summary> /// <param name="dataSource">The data source.</param> /// <param name="capReasonType">Reason why a character should have been capitalized.</param> /// <param name="styleName">Name of the style or string.Empty if not relevant.</param> /// <returns>error message.</returns> /// ------------------------------------------------------------------------------------ internal static string GetErrorMessage(IChecksDataSource dataSource, StyleCapInfo.CapCheckTypes capReasonType, string styleName) { switch (capReasonType) { case StyleCapInfo.CapCheckTypes.SentenceInitial: return dataSource.GetLocalizedString("Sentence should begin with a capital letter"); case StyleCapInfo.CapCheckTypes.Heading: return dataSource.GetLocalizedString("Heading should begin with a capital letter"); case StyleCapInfo.CapCheckTypes.Title: return dataSource.GetLocalizedString("Title should begin with a capital letter"); case StyleCapInfo.CapCheckTypes.List: return dataSource.GetLocalizedString("List paragraphs should begin with a capital letter"); case StyleCapInfo.CapCheckTypes.Table: return dataSource.GetLocalizedString("Table contents should begin with a capital letter"); case StyleCapInfo.CapCheckTypes.ProperNoun: return dataSource.GetLocalizedString("Proper nouns should begin with a capital letter"); case StyleCapInfo.CapCheckTypes.Special: return String.Format(dataSource.GetLocalizedString( "Text in the {0} style should begin with a capital letter"), styleName); } throw new Exception("Reason for capitalizing the style " + styleName + " is not handled in GetErrorMessage (" + capReasonType.ToString() + ")"); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="T:ChapterVerseCheck"/> class. /// </summary> /// <param name="checksDataSource">The checks data source.</param> /// ------------------------------------------------------------------------------------ public ChapterVerseCheck(IChecksDataSource checksDataSource) : this(checksDataSource, null) { }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="CapitalizationCheck"/> class. /// </summary> /// <param name="_checksDataSource">The data source for the check.</param> /// ------------------------------------------------------------------------------------ public CapitalizationCheck(IChecksDataSource _checksDataSource) { m_chkDataSource = _checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="RepeatedWordsCheck"/> class. /// </summary> /// <param name="checksDataSource">The checks data source.</param> /// ------------------------------------------------------------------------------------ public RepeatedWordsCheck(IChecksDataSource checksDataSource) { m_checksDataSource = checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// /// </summary> /// <param name="checksDataSource"></param> /// ------------------------------------------------------------------------------------ public MixedCapitalizationCheck(IChecksDataSource checksDataSource) { m_checksDataSource = checksDataSource; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="ProcessSentenceFinalPunct"/> class. /// </summary> /// <param name="checksDataSource">The source of data for Scripture checking.</param> /// <param name="allCapitalizedStyles">Dictionary keyed by the style name containing the /// type of style (character/paragraph) and a value indicating why it should begin with /// a capital.</param> /// ------------------------------------------------------------------------------------ public CapitalizationProcessor(IChecksDataSource checksDataSource, Dictionary<string, StyleCapInfo> allCapitalizedStyles) { m_checksDataSource = checksDataSource; m_categorizer = checksDataSource.CharacterCategorizer; m_abbreviations = checksDataSource.GetParameterValue("Abbreviations").Split(); m_allCapitalizedStyles = allCapitalizedStyles; string sentenceFinalPunc = checksDataSource.GetParameterValue("SentenceFinalPunctuation"); if (!string.IsNullOrEmpty(sentenceFinalPunc)) { foreach (char ch in sentenceFinalPunc) m_validSentenceFinalPuncts.Add(ch); } else { // No punctuation is set up for this writing system that contains sentence-final punctuation. // Define sentence-final punctuation with these characters as a fallback: '.', '?', and '!' m_validSentenceFinalPuncts.Add('.'); m_validSentenceFinalPuncts.Add('?'); m_validSentenceFinalPuncts.Add('!'); } }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initializes a new instance of the <see cref="RepeatedWordsCheck"/> class. /// </summary> /// <param name="_checksDataSource">The checks data source.</param> /// ------------------------------------------------------------------------------------ public RepeatedWordsCheck(IChecksDataSource checksDataSource) { m_checksDataSource = checksDataSource; }
private static IScrCheckInventory CreateScrCharInventoryBldr(string checksDll, IChecksDataSource scrDataSource, string checkType) { var scrCharInventoryBldr = (IScrCheckInventory)ReflectionHelper.CreateObject(checksDll, checkType, new object[] { scrDataSource }); return scrCharInventoryBldr; }