public override ISnippetReader GetSnippet(string [] query_terms, Hit hit, bool full_text, int ctx_length, int snp_length)
        {
            TextReader reader = TextCache.UserCache.GetReader(hit.Uri);

            if (reader == null)
            {
                return(null);
            }

            KopeteSnippetReader snippet_reader = new KopeteSnippetReader(reader);

            return(SnippetFu.GetSnippet(query_terms, snippet_reader, full_text, ctx_length, snp_length));
        }
        public override ISnippetReader GetSnippet(string [] query_terms, Hit hit, bool full_text, int ctx_length, int snp_length)
        {
            TextReader reader = TextCache.UserCache.GetReader(hit.Uri);

            if (reader == null)
            {
                return(null);
            }

            string line = reader.ReadLine();

            if (line[0] == '<')
            {
                reader = new HtmlRemovingReader(reader);
            }

            return(SnippetFu.GetSnippet(query_terms, reader, full_text, ctx_length, snp_length));
        }
    static void Main(string [] args)
    {
        Query query = new Query();

        foreach (string arg in args)
        {
            query.AddText(arg);
        }

        SnippetReader snippet_reader;

        // FIXME: Oops ... does not quit by passing empty line
        snippet_reader = SnippetFu.GetSnippet(args, Console.In, false, -1, -1);          //delegate {

        bool first = true;

        foreach (SnippetLine snippet_line in snippet_reader.GetSnippet())
        {
            Console.WriteLine("\nSnippet:\n{0}", snippet_line.ToString());
        }
    }
        override public ISnippetReader GetSnippet(string [] query_terms, Hit hit, bool full_text, int ctx_length, int snp_length)
        {
            if (hit.ParentUri == null)
            {
                return(null);
            }

            string path = hit.ParentUri.LocalPath;

            string snippet      = null;
            long   begin_offset = Convert.ToInt64(hit ["fixme:session_begin_offset"]);
            long   end_offset   = Convert.ToInt64(hit ["fixme:session_end_offset"]);

            try {
                LineTextReader reader;
                reader = new LineTextReader(path, begin_offset, end_offset);

                return(SnippetFu.GetSnippet(query_terms, reader, full_text, ctx_length, snp_length));
            } catch {
                return(null);
            }

            return(null);
        }