#===============================================================================
#	ADVANCED SETTINGS
#===============================================================================
#
# Notes on editing this file:
# * Use the '#' character at the beginning of a line to comment it out.
# * Changes will take effect after the program is restarted.
# * To restore the defaults, simply delete this file. It will be recreated the
#   next time the program is started.


#===============================================================================
#	General
#===============================================================================

# The text to display in the title bar of the main window and in the task bar.
# This setting might be useful for rebranding and for using multiple instances
# of DocFetcher.
# You can also rename the main help files (by default "DocFetcher_Manual.html")
# and their associated HTML folders if you want. If you do the latter, you'll
# have to update the hyperlinks in the HTML files.
AppName = DocFetcher

# By default, DocFetcher checks on startup whether another instance of itself is
# already running, and warns if that's the case, as running multiple instances
# simultaneously will lead to inconsistent program behavior with respect to
# saving and loading the program state. This single-instance check has the side
# effect that DocFetcher will also display a warning message if the DocFetcher
# process was forcibly terminated the last time it was run. If that warning
# message is bothering you, you can turn it off by setting the following to
# false:
CheckSingleInstance = true

# By default, when DocFetcher starts up it checks the index folder for any
# obsolete index files, and if it finds any, it asks the user whether the files
# should be deleted. You can turn this off with this setting.
ReportObsoleteIndexFiles = true

# Whether to show a link to this file on the preferences dialog. Disable this
# setting to prevent users from mucking around in this file.
ShowAdvancedSettingsLink = true

# Whether the user is allowed to perform various actions on indexes. Disabling
# any of these setings will hide the respective context menu entry in the Search
# Scope pane.
AllowIndexCreation = true
AllowIndexUpdate = true
AllowIndexRenaming = true
AllowIndexRebuild = true
AllowIndexDeletion = true

# If this is true, the program will not store changes made by the user to the
# sizes of the various program windows. Instead, it will always reload the last
# saved sizes on startup.
FixWindowSizes = false

# Whether any changes to the program settings should be written to disk.
SaveSettings = true

# The global hotkey to bring the program window to the front is disabled by
# default due to known launch issues. On Windows in particular, with the hotkey
# enabled, the program may either crash at startup with an error message
# containing the word "JIntellitypeException", or it may crash at startup with
# no error message at all. This setting allows you to enable the hotkey despite
# the potential launch issues. Note that the hotkey is only supported on Windows
# and Linux, not on macOS.
HotkeyEnabled = false


#===============================================================================
#	Indexing
#===============================================================================

# During indexing, the program will normally only display the names of the files
# being indexed. With this setting set to true, the program will display the
# full file path. This is useful for locating files that cause the program to
# hang so that it doesn't show the file path in the error table.
ShowPathsDuringIndexing = false

# With this setting set to true, the program will continuously write the path of
# each file currently being indexed to a log file. There is one log file per
# index, and the log files are recreated every time its index is rebuilt. The
# log files can be found in the respective index folders. For the location of
# the latter, see the DocFetcher FAQ:
# http://docfetcher.sourceforge.net/wiki/doku.php?id=faq#where_does_docfetcher_put_its_index_files_how_can_i_change_the_location_of_the_index_files
# The log files are intended for identifying problematic files the program
# chokes and crashes on during indexing.
WriteIndexingLog = false

# HTML file extensions. This setting will affect detection of HTML files and the
# HTML pairing algorithm.
HtmlExtensions = html;htm;xhtml;shtml;shtm

# The height of the regex table on the indexing dialog, measured (approximately)
# in number of visible rows.
PatternTableHeight = 4

# The maximum number of lines to display in the indexing progress panel. When
# the number of lines exceeds this limit, lines at the top will be discarded.
# Setting a value that is too high may cause the program to crash with an
# OutOfMemoryError.
MaxLinesInProgressPanel = 1000

# If this is set to true, all text extraction during indexing will be disabled.
# Mainly useful for debugging.
DryRun = false

# Whether support for tar archives is disabled. If disabled, tar archives will
# be treated as ordinary files. Set this to true if you experience tar-related
# issues, e.g., your temporary directory filling up with tzp*.tmp files, or just
# want to speed up indexing by completely avoiding the unpacking of tar
# archives.
SkipTarArchives = false

# Whether the program should follow or ignore NTFS junctions and symlinks during
# indexing. Normally, the program ignores them in order to avoid getting stuck
# in circular folder structures.
IgnoreJunctionsAndSymlinks = true

# This setting determines whether the program indexes a formula in an MS Excel
# file as is, or whether it indexes the formula's result instead. For example,
# if a cell contains the formula "=2+2", the program will either literally
# extract "=2+2" from the cell, or "4", depending on this setting's value.
# Changes to this setting will immediately affect the preview pane, but not the
# indexes, so you'll have to rebuild the latter after the change.
IndexExcelFormulas = true

# Plain text files (e.g., files with extension ".txt") don't contain any
# explicit text encoding information, so when the program parses them, it has to
# use heuristics to determine the encoding. This might not always give the
# correct result; if that happens, you can use this setting to disable the
# heuristics and specify the text encoding manually. For example, set this
# setting's value to "GBK" for Simplified Chinese GBK encoding. For a list of
# available encodings, see the two tables on the following page:
# http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html
# In each table row, the encoding names in the first and second table column are
# interchangeable.
# If the above link doesn't work, google for "java supported encodings".
TextEncodingOverride =

# In PDF files, the order in which individual characters are positioned on each
# each page (the "visual" order) does not necessarily match the order in which
# these characters are stored in the PDF file. During indexing, the program will
# always process the text in the "stored" order, but will by default use the
# "visual" order for the text in the preview pane. With some PDF files, this
# default can lead to superfluous space characters and other oddities in the
# preview text. If you experience such problems, try changing this setting's
# value to 'false'. However, note that this will affect the preview for *all*
# PDF files.
PdfPreviewVisualOrder = true


#===============================================================================
#	Searching, results and preview
#===============================================================================

# The maximum width of the search text field in pixels.
SearchBoxMaxWidth = 500

# The size limit of the search history, which can be accessed through the
# drop-down menu next to the search text field.
SearchHistorySize = 20

# By default, the program initially sorts the results by score. To change the
# initial sorting criterion, specify the number of the column to sort by here.
# The numbering starts at 1. Zero and out-of-range values will be ignored.
# If the value is negative, the sorting is reversed, e.g., "-2" means "sort by
# second column, but in reversed order".
InitialSorting = 0

# The maximum number of search results to return for each query. If you set a
# value that is too high, the program may crash with an OutOfMemoryError while
# searching.
# This setting is primarily used for capping memory consumption and search time
# when dealing with very large indexes. It is not recommended to use this
# setting for trimming down the the results, since a low value for this setting
# will cause the program to try to pick an equal number of results from each
# index (rather than picking the highest-scoring results across all indexes).
MaxResultsTotal = 10000

# By default, the program will not simultaneously open more files than the
# number specified by this setting. This is to prevent accidentally opening
# hundreds of files all at once. Adjust this setting if you need to be able to
# open more files than the default number.
OpenLimit = 10

# The capacity of the unpack cache. The latter holds archive entries that were
# unpacked for display in the preview pane and makes sure they won't get deleted
# immediately. The oldest entries are deleted first when this capacity limit
# is reached. The cache is cleared when the program terminates.
UnpackCacheCapacity = 20

# Whether the text-only preview is enabled. Setting this to false is useful when
# the GUI is slowed down by large files being displayed in the preview pane.
# Note: This setting does not affect the embedded web browser that is used to
# display HTML files in the preview pane. Note also that when an HTML file is
# being displayed, you can switch between the embedded web browser and the
# text-only preview via a button in the preview pane toolbar.
TextPreviewEnabled = true


#===============================================================================
#	Python API - UNSAFE!
#===============================================================================

# Whether the DocFetcher instance allows scripting based on Py4J. For example
# usage, see the file search.py. This setting is disabled by default for
# security reasons: Enabling it will make DocFetcher run a TCP server on
# localhost, which is subject to both local and (potential) remote code
# execution exploits.
PythonApiEnabled = false

# The port on which the DocFetcher instance allows scripting.
PythonApiPort = 28834
