# This is config file for the GVIDE (gVim based IDE)
# written by Dmitry Moskalchuk <crystax@gmail.com>
#
# GVIDE support project-specific options. Such options should be
# specified in the following form:
#   option-name['regexp'] = somevalue
# It means that this option will apply for the projects which
# full path will match specified regexp. Otherwise common
# value of the option will be used (option-name = somevalue)
# Here is also similar feature but for the languages used:
#   option-name{'lang'} = somevalue
# Here lang MUST exactly match used language in the terms of
# the VIM's filetypes ('lisp', 'c', 'cpp' etc)
# Note that the curly braces identifies language-based settings
# at the time when square brackets means project-based settings

# There is possibility to include number of other configs here.
# The values specified in the config after includes could overwrite
# or customize values specified in includes.
# See below example
#
#include /some/gviderc
#
# Overwrite some option specified in the /some/gviderc
#some-option = 'new-value'
#
# Customize other options specified in the /some/gviderc
#other-option-1 += ['new-value']
#other-option-2 .= 'aaa'
# Operations '+=' and '-=' can be applied only to the integers, lists or dictionaries.
#other-option-3 -= 10
#other-option-4 -= [{'name': 'value'}]
# In case if '-=' applied to the dictionary there is no matter which values specified.
# The keys only used. Strings also can be used in this case. Next examples are identical:
#other-option-5 -= {'key1': 1, 'key2': 0}
#other-option-5 -= {'key1': 'Some other value', 'key2': [1, 2, 3]}
# And for strings:
#other-option-5 -= 'key1'
#other-option-5 -= 'key2'
#
# Quotes can be omitted in the case of the strings with % on the end.
# Next two examples are identical:
#option-name = 10%
#option-name = '10%'


# Start mode of the GVIDE. 'ide' by default
start-mode = 'ide'

# Here is only two currently supported schemes: 'light' and 'dark'.
# Other schemes to be defined
highlight-scheme = 'dark'

# GUI font used by GVIDE
gui-font = $GVIDE_GUIFONT

# Do not use GUI dialogs for "Search" and "Search and replace" operations
use-gui-dialogs = no

# Enable "MRU Buffer Switch" algorithm
enable-mru-buffer-switch = yes
# Maximum time diff (in milliseconds) used by "MRU Buffer Switch" algorithm
mru-buffer-switch-time-diff = 500

#-----------------------------------------#
# Window size settings                    #
#-----------------------------------------#

# GVIDE application window size
gvide-full-window-size-x = $GVIDE_SIZEX
gvide-full-window-size-y = $GVIDE_SIZEY

# Left "Control" window
gvide-control-window-width = 20%
# Bottom "Task" window
gvide-task-window-height = 20%
# Bottom debug windows
gvide-debug-windows-height = 40%

#-----------------------------------------#
# Settings for the "UI" plugin            #
#-----------------------------------------#

use-border-characters = 'unicode'

#-----------------------------------------#
# Settings for the "GVIDE browser" plugin #
#-----------------------------------------#

# Enable/disable "GVIDE browser"
# Will be constantly enabled in the future
use-object-browser = no

# Start directory for the old "File browser" plugin
start-directory = '~/work'

# Show hidden files (objects)
show-hidden-files = no

# List of the hidden files
hidden-files = \
[\
	# Hide files/directories which start from '.'
	{'name': '^\.[^\.].*$'},             \
	# Hide .svn service folders
	{'name': '^\.svn$', 'folder': 1}, \
	# Hide CVS service folders
	{'name': '^/CVS$', 'folder': 1},  \
	# Hide .git service folders
	{'name': '^\.git$', 'folder': 1} \
]

#-----------------------------------------#
# VCS plugin settings                     #
#-----------------------------------------#

vcs-commit-comments-history-size = 10

#-----------------------------------------#
# Settings for the "Tags" plugin          #
#-----------------------------------------#

enable-scope-detecting = no

# 'exact': only use tags with the 'language' property exactly
# matched to the current programming language
# Example: if current language is 'C', and there are two macros defined,
#  one in the file foo.c and other in the file foo.cpp, the only one
#  will be used from the foo.c
#tags-search-languages-policy = 'exact'

# 'compatible': use tags with the 'language' property compatible
# to the current programming language
# Example: if current language is 'C', and there are two macros defined,
#  one in the file foo.c and other in the file foo.cpp, the both symbols
#  would be found
tags-search-languages-policy = 'compatible'

# 'any': use all tags independent from language
#tags-search-languages-policy = 'any'

#-----------------------------------------#
# Visual debugging                        #
#-----------------------------------------#

# Enable new debugger facilities
debug-enable-new = yes
# Enable GDB interaction logging
debug-gdb-enable-log = yes
# Enable low-level logging of the GDB MI parser
debug-gdb-mi-parser-enable-log = no
# Enable low-level logging of the GDB MI output processing
debug-gdb-mi-handling-enable-log = yes
# If yes, GVIDE will stop debugger just after enter into 'main()' function
debug-stop-on-start = no
# Switch back to IDE mode when stop debugging (yes by default)
debug-switch-on-stop = yes

# Initial contents of the left and right watch windows in debug mode
debug-watch1-content = 'frames'
debug-watch2-content = 'locals'

#-----------------------------------------#
# External programs settings              #
#-----------------------------------------#

ctags-program = 'exctags'
stardict-program = 'sdcv'
format-program = 'indent'
make-program = 'make'
ant-program = 'ant'

#-----------------------------------------#
# Build system settings                   #
#-----------------------------------------#

enable-parallel-build = yes
#enable-parallel-build['regexp of the project path'] = no

# Keep building project in parallel mode even if compilation
# error detected. It is helpful to find as more as possible
# errors on one run.
make-keep-going = yes

#-----------------------------------------#
# Common settings                         #
#-----------------------------------------#

file-types = [ \
	[['*.def', '*.inl', '*.ipp'], 'cpp'], \
	[['*.[ehy]rl'], 'erlang'], \
	[['*.ds'], 'lua'] \
]

tags = [ \
	['~/.gvide/tags.sys', ['/usr/include', '/usr/local/include']], \
	['~/.gvide/tags.lisp', [ \
		'/usr/lib/sbcl', '/usr/lib64/sbcl', \
		'/usr/local/lib/sbcl', '/usr/local/lib64/sbcl']], \
	['~/.gvide/tags.erlang', [ \
		'/usr/lib/erlang', '/usr/lib64/erlang', \
		'/usr/local/lib/erlang', '/usr/local/lib64/erlang']] \
]

# Maximum number of the items in the MRU Projects list
max-mru-projects-items = 40

# Show/hide non-printable characters: tabulations and trailing spaces
show-non-printable-characters = yes

# Search complete words. For example, when search 'whi', match 'whi'
# words only and not match 'while' and 'which'
search-complete-word = no

# Enable/disable word autocomplete
autocomplete = yes
# Look forward for words to complete (backward by default)
autocomplete-look-forward = no
# Use Omni autocomplete (no by default)
use-omni-autocomplete = no
# Completion menu height
complete-menu-height = 30

# Replace tabulations by the spaces
replace-tabs-by-spaces = no
#replace-tabs-by-spaces['regexp of the project path'] = yes
replace-tabs-by-spaces{'lisp'} = yes
# Width of the tabulations (used also when replace tabulations by spaces)
tabs-width = 4
#tabs-width['regexp of the project path'] = 2
tabs-width{'lisp'} = 2

# Visual height of the command line (minimum: 2)
command-line-height = 2

# Matching pairs
match-pairs = '(:),{:},[:],<:>'

# Enable/disable file backups
enable-backup = no

# Automatically break line when specified width of text reached
auto-break-line = no
auto-break-line{'lisp'} = yes
# Width of the text when automatically break line
auto-break-line-position = 90

