freebsd-skq/contrib/subversion/.ycm_extra_conf.py
dim c0fce3206c MFC r275385 (by bapt):
Sync the svn template with the one from ports

MFC r289180 (by peter):
  Update from svn-1.8.14 to 1.9.2.

  Formal release notes are available:
    https://subversion.apache.org/docs/release-notes/1.9.html

  Of particular note, the client checkout format has *not* changed so
  upgrades should *not* be required.

  When reading a repository (file:// or running as a local server), an
  improved fsfs version 7 is available with significant performance
  improvements.  An optional upgrade is possible to use the new features.
  Without the upgrade, this is fully read/write compatible with the
  version 6 fsfs as in svn-1.8.

MFC r298845:
  Update from subversion 1.9.2 to 1.9.4.

  This contains only bug fixes, no new features.  The repository format is
  also unchanged from 1.9.2.  Full list of changes between 1.9.4 and
  earlier versions:

    https://svn.apache.org/repos/asf/subversion/tags/1.9.4/CHANGES

  Note that the two security issues fixed in 1.9.4 (CVE-2016-2167 and
  CVE-2016-2168) do not affect the version of Subversion in the FreeBSD
  base system, since neither SASL nor Apache modules are enabled.

MFC r298996:
  Re-sync the FreeBSD-specific Subversion template with the one from
  ports.

Relnotes:	yes
2016-05-14 10:18:27 +00:00

89 lines
3.0 KiB
Python

# Configuration file for YouCompleteMe vim plugin to allow the plugin
# to determine the compile flags. This file is based on:
# https://github.com/Valloric/YouCompleteMe/blob/master/cpp/ycm/.ycm_extra_conf.py
#
# This is free and unencumbered software released into the public domain.
#
# Anyone is free to copy, modify, publish, use, compile, sell, or
# distribute this software, either in source code form or as a compiled
# binary, for any purpose, commercial or non-commercial, and by any
# means.
#
# In jurisdictions that recognize copyright laws, the author or authors
# of this software dedicate any and all copyright interest in the
# software to the public domain. We make this dedication for the benefit
# of the public at large and to the detriment of our heirs and
# successors. We intend this dedication to be an overt act of
# relinquishment in perpetuity of all present and future rights to this
# software under copyright law.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# For more information, please refer to <http://unlicense.org/>
import os
import ycm_core
from clang_helpers import PrepareClangFlags
compilation_database_folder = os.path.dirname(os.path.realpath(__file__))
if compilation_database_folder:
database = ycm_core.CompilationDatabase( compilation_database_folder )
else:
database = None
def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
if not working_directory:
return flags
new_flags = []
make_next_absolute = False
path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
for flag in flags:
new_flag = flag
if make_next_absolute:
make_next_absolute = False
if not flag.startswith( '/' ):
new_flag = os.path.join( working_directory, flag )
for path_flag in path_flags:
if flag == path_flag:
make_next_absolute = True
break
if flag.startswith( path_flag ):
path = flag[ len( path_flag ): ]
new_flag = path_flag + os.path.join( working_directory, path )
break
if new_flag:
new_flags.append( new_flag )
return new_flags
def FlagsForFile( filename ):
if database:
# Bear in mind that compilation_info.compiler_flags_ does NOT return a
# python list, but a "list-like" StringVec object
compilation_info = database.GetCompilationInfoForFile( filename )
final_flags = PrepareClangFlags(
MakeRelativePathsInFlagsAbsolute(
compilation_info.compiler_flags_,
compilation_info.compiler_working_dir_ ),
filename )
do_cache = True
else:
final_flags = [ ]
do_cache = False
return {
'flags': final_flags,
'do_cache': do_cache
}