Esempio n. 1
0
        /// ------------------------------------------------------------------------------------
        /// <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() + ")");
        }
Esempio n. 2
0
        /// ------------------------------------------------------------------------------------
        /// <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('!');
            }
        }
Esempio n. 3
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 ///
 /// </summary>
 /// ------------------------------------------------------------------------------------
 public ProcessMatchedPairTokens(IChecksDataSource checksDataSource,
                                 MatchedPairList pairList, StyleCategorizer styleCategorizer)
 {
     m_checksDataSource = checksDataSource;
     m_pairList         = pairList;
     m_styleCategorizer = styleCategorizer;
 }
Esempio n. 4
0
        /// ------------------------------------------------------------------------------------
        /// <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));
        }
Esempio n. 5
0
        /// ------------------------------------------------------------------------------------
        /// <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());
        }
Esempio n. 6
0
		/// ------------------------------------------------------------------------------------
		/// <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;
		}
Esempio n. 7
0
		/// ------------------------------------------------------------------------------------
		/// <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());
		}
Esempio n. 9
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		///
		/// </summary>
		/// ------------------------------------------------------------------------------------
		public ProcessMatchedPairTokens(IChecksDataSource checksDataSource,
			MatchedPairList pairList, StyleCategorizer styleCategorizer)
		{
			m_checksDataSource = checksDataSource;
			m_pairList = pairList;
			m_styleCategorizer = styleCategorizer;
		}
Esempio n. 10
0
        private static IScrCheckInventory CreateScrCharInventoryBldr(string checksDll, IChecksDataSource scrDataSource, string checkType)
        {
            var scrCharInventoryBldr = (IScrCheckInventory)ReflectionHelper.CreateObject(checksDll,
                                                                                         checkType, new object[] { scrDataSource });

            return(scrCharInventoryBldr);
        }
Esempio n. 11
0
		/// ------------------------------------------------------------------------------------
		/// <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
		}
Esempio n. 12
0
 /// ------------------------------------------------------------------------------------
 /// <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;
 }
Esempio n. 13
0
 /// ------------------------------------------------------------------------------------
 /// <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;
 }
Esempio n. 14
0
//		/// <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)
		{
		}
Esempio n. 15
0
		/// ------------------------------------------------------------------------------------
		/// <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;
		}
Esempio n. 16
0
//		/// <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;
        }
Esempio n. 17
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Initializes a new instance of the <see cref="QuotationCheck"/> class.
		/// ------------------------------------------------------------------------------------
		public QuotationCheck(IChecksDataSource checksDataSource)
		{
			m_chkDataSource = checksDataSource;
		}
Esempio n. 18
0
		/// ------------------------------------------------------------------------------------
		/// <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";
		}
Esempio n. 19
0
		/// ------------------------------------------------------------------------------------
		/// <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;
		}
Esempio n. 20
0
		/// ------------------------------------------------------------------------------------
		/// <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() + ")");
		}
Esempio n. 21
0
 /// ------------------------------------------------------------------------------------
 /// <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)
 {
 }
Esempio n. 22
0
		/// ------------------------------------------------------------------------------------
		/// <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;
		}
Esempio n. 23
0
 /// ------------------------------------------------------------------------------------
 /// <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;
 }
Esempio n. 24
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Initializes a new instance of the <see cref="CharactersCheck"/> class.
 /// </summary>
 /// ------------------------------------------------------------------------------------
 public CharactersCheck(IChecksDataSource _checksDataSource)
 {
     m_checksDataSource = _checksDataSource;
 }
Esempio n. 25
0
 /// ------------------------------------------------------------------------------------
 /// <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;
 }
Esempio n. 26
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 ///
 /// </summary>
 /// <param name="checksDataSource"></param>
 /// ------------------------------------------------------------------------------------
 public MixedCapitalizationCheck(IChecksDataSource checksDataSource)
 {
     m_checksDataSource = checksDataSource;
 }
Esempio n. 27
0
		/// ------------------------------------------------------------------------------------
		/// <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>
		/// <param name="checksDataSource"></param>
		/// ------------------------------------------------------------------------------------
		public MixedCapitalizationCheck(IChecksDataSource checksDataSource)
		{
			m_checksDataSource = checksDataSource;
		}
Esempio n. 29
0
		/// ------------------------------------------------------------------------------------
		/// <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;
		}
Esempio n. 30
0
		private static IScrCheckInventory CreateScrCharInventoryBldr(string checksDll, IChecksDataSource scrDataSource, string checkType)
		{
			var scrCharInventoryBldr = (IScrCheckInventory)ReflectionHelper.CreateObject(checksDll,
				checkType, new object[] { scrDataSource });
			return scrCharInventoryBldr;
		}