From patchwork Sun Nov 14 21:53:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Gregory X-Patchwork-Id: 1984 Return-Path: Delivered-To: patchwork@archlinux.org Received: from mail.archlinux.org [2a01:4f9:c010:3052::1] by patchwork.archlinux.org with IMAP (fetchmail-6.4.23) for (single-drop); Sun, 14 Nov 2021 21:55:37 +0000 (UTC) Received: from mail.archlinux.org by mail.archlinux.org with LMTP id wJBdONiFkWG4uAQAK+/4rw (envelope-from ) for ; Sun, 14 Nov 2021 21:55:36 +0000 Received: from lists.archlinux.org (lists.archlinux.org [95.217.236.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.archlinux.org (Postfix) with ESMTPS id 9D431A783A1; Sun, 14 Nov 2021 21:55:34 +0000 (UTC) Received: from lists.archlinux.org (localhost [IPv6:::1]) by lists.archlinux.org (Postfix) with ESMTP id 41153997C23; Sun, 14 Nov 2021 21:55:34 +0000 (UTC) X-Original-To: pacman-dev@lists.archlinux.org Delivered-To: pacman-dev@lists.archlinux.org Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by lists.archlinux.org (Postfix) with ESMTPS id A1CDC997C1B for ; Sun, 14 Nov 2021 21:55:31 +0000 (UTC) Received: by mail-pf1-x433.google.com with SMTP id m14so13313445pfc.9 for ; Sun, 14 Nov 2021 13:55:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=FO5pjkW7/doxJSva8oK9cgZylvp16MkUw2obap0qvxo=; b=IcVO49kVwsNSTFq3tFdUEzadkLzcBEd9e9RUqMDcm+0ZrIB/S91jd0eDK3vUNbOeGy SCLgS1ZioXsDgbyQIT+fh+C8I3wvDttXyCBBDQFP75VIZrl9w5i8CRnqL8i60xRBFifl YlN915CsZrsf80l863pQQUq0Q1Gf/6JkKN1DWtpgYDjouVZProMaQHxsIqnFtnMRUVW1 WlCVvtWaYooe7HE2/7OmtHEEb4DV6x3RNEtSKLoUqj6CJb+sXoiyDVjngHM6KxMLGmVx FQUEgjFjz7mlX3Bl/joB2xl2A2XUtFlUuYmd5hZCIWabhk8eWQ5Dgg4z1fXu405sqyz5 q0Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=FO5pjkW7/doxJSva8oK9cgZylvp16MkUw2obap0qvxo=; b=UUvyVNd8939muKHMWk9yNwtiMtVvlNxHeTwJca2JQXaSbxL29WzUz/ZAYncXxWeuGS AMvO4ETbMwVxCRoAAhSS1wotzogO3LTds4seHUn1pyAwbMmzmjlAQPsZRkHUOPQm4VOf e4g+7GzSZjM0NpntHduN1CU4v5yXAXLZulp2d3KUseRiZWS3IncdyNlm3iF4auM0xEad esRXzgWho6F1+xWUZwrZ9ji3EgGIdIdwgYwOOPdTcbRmujk60QwEmM123joW453BvSXR YptRDrUaY0jC7J7ba9QGCTo4afoKk18PM7V/xMi4OPyYq9QLMFST3AE4omoY1AJLxe1e SQ+Q== X-Gm-Message-State: AOAM531atjzLVr0ztDvwfX0JzLMhWl4hszqguk6ZtLLdtMMqAXF0XgDX sjEop6olAusESmKz59bKJkhs5tqa0fg= X-Google-Smtp-Source: ABdhPJzBKV8G3ZZ28AsAPBEYv+TPzQSXwfuTZSsUpprIK4I09+v8M7HSDy4MZvJ7hfLZouyRR3xJXQ== X-Received: by 2002:a05:6a00:b8a:b0:49f:ed97:16be with SMTP id g10-20020a056a000b8a00b0049fed9716bemr29178086pfj.16.1636926929001; Sun, 14 Nov 2021 13:55:29 -0800 (PST) Received: from localhost.localdomain ([98.42.151.70]) by smtp.gmail.com with ESMTPSA id w37sm9458880pgk.87.2021.11.14.13.55.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Nov 2021 13:55:28 -0800 (PST) From: Andrew Gregory To: pacman-dev@lists.archlinux.org Cc: Andrew Gregory Subject: [PATCH] remove YouCompleteMe config Date: Sun, 14 Nov 2021 13:53:55 -0800 Message-Id: <20211114215355.8909-1-andrew.gregory.8@gmail.com> X-Mailer: git-send-email 2.33.1 MIME-Version: 1.0 X-BeenThere: pacman-dev@lists.archlinux.org X-Mailman-Version: 2.1.35 Precedence: list List-Id: Discussion list for pacman development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: pacman-dev-bounces@lists.archlinux.org Sender: "pacman-dev" Authentication-Results: mail.archlinux.org; dkim=pass header.d=gmail.com header.s=20210112 header.b=IcVO49kV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mail.archlinux.org: domain of pacman-dev-bounces@lists.archlinux.org designates 95.217.236.249 as permitted sender) smtp.mailfrom=pacman-dev-bounces@lists.archlinux.org X-Rspamd-Queue-Id: 9D431A783A1 X-Spamd-Result: default: False [-1.41 / 15.00]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_MISSING_CHARSET(0.50)[]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; RCVD_IN_DNSWL_MED(-0.20)[95.217.236.249:from]; R_SPF_ALLOW(-0.20)[+ip4:95.217.236.249:c]; MAILLIST(-0.20)[mailman]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20210112]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; TAGGED_RCPT(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[pacman-dev@lists.archlinux.org]; RCVD_COUNT_FIVE(0.00)[5]; NEURAL_HAM(-0.00)[-1.000]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::433:received]; ARC_NA(0.00)[]; TAGGED_FROM(0.00)[]; ASN(0.00)[asn:24940, ipnet:95.217.0.0/16, country:DE]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; FROM_NEQ_ENVFROM(0.00)[andrewgregory8@gmail.com,pacman-dev-bounces@lists.archlinux.org]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_CC(0.00)[gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Server: mail.archlinux.org Added, seemingly by accident, with meson in 51db84750ece4de58923d4ce43cb0638ef150f5f Signed-off-by: Andrew Gregory --- .ycm_extra_conf.py | 250 --------------------------------------------- 1 file changed, 250 deletions(-) delete mode 100644 .ycm_extra_conf.py diff --git a/.ycm_extra_conf.py b/.ycm_extra_conf.py deleted file mode 100644 index f297deef..00000000 --- a/.ycm_extra_conf.py +++ /dev/null @@ -1,250 +0,0 @@ -#!/usr/bin/env python - -# SPDX-License-Identifier: Unlicense -# -# Based on the template file provided by the 'YCM-Generator' project authored by -# Reuben D'Netto. -# Jiahui Xie has re-reformatted and expanded the original script in accordance -# to the requirements of the PEP 8 style guide and 'systemd' project, -# respectively. -# -# The original license is preserved as it is. -# -# -# 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 - -""" -YouCompleteMe configuration file tailored to support the 'meson' build system -used by the 'systemd' project. -""" - -import glob -import os -import ycm_core - - -SOURCE_EXTENSIONS = (".C", ".cpp", ".cxx", ".cc", ".c", ".m", ".mm") -HEADER_EXTENSIONS = (".H", ".h", ".hxx", ".hpp", ".hh") - - -def DirectoryOfThisScript(): - """ - Return the absolute path of the parent directory containing this - script. - """ - return os.path.dirname(os.path.abspath(__file__)) - - -def GuessBuildDirectory(): - """ - Guess the build directory using the following heuristics: - - 1. Returns the current directory of this script plus 'build' - subdirectory in absolute path if this subdirectory exists. - - 2. Otherwise, probes whether there exists any directory - containing '.ninja_log' file two levels above the current directory; - returns this single directory only if there is one candidate. - """ - result = os.path.join(DirectoryOfThisScript(), "build") - - if os.path.exists(result): - return result - - result = glob.glob(os.path.join(DirectoryOfThisScript(), - "..", "..", "*", ".ninja_log")) - - if not result: - return "" - - if 1 != len(result): - return "" - - return os.path.split(result[0])[0] - - -def TraverseByDepth(root, include_extensions): - """ - Return a set of child directories of the 'root' containing file - extensions specified in 'include_extensions'. - - NOTE: - 1. The 'root' directory itself is excluded from the result set. - 2. No subdirectories would be excluded if 'include_extensions' is left - to 'None'. - 3. Each entry in 'include_extensions' must begin with string '.'. - """ - is_root = True - result = set() - # Perform a depth first top down traverse of the given directory tree. - for root_dir, subdirs, file_list in os.walk(root): - if not is_root: - # print("Relative Root: ", root_dir) - # print(subdirs) - if include_extensions: - get_ext = os.path.splitext - subdir_extensions = { - get_ext(f)[-1] for f in file_list if get_ext(f)[-1] - } - if subdir_extensions & include_extensions: - result.add(root_dir) - else: - result.add(root_dir) - else: - is_root = False - - return result - - -_project_src_dir = os.path.join(DirectoryOfThisScript(), "src") -_include_dirs_set = TraverseByDepth(_project_src_dir, frozenset({".h"})) -flags = [ - "-x", - "c" - # The following flags are partially redundant due to the existence of - # 'compile_commands.json'. - # '-Wall', - # '-Wextra', - # '-Wfloat-equal', - # '-Wpointer-arith', - # '-Wshadow', - # '-std=gnu99', -] - -for include_dir in _include_dirs_set: - flags.append("-I" + include_dir) - -# Set this to the absolute path to the folder (NOT the file!) containing the -# compile_commands.json file to use that instead of 'flags'. See here for -# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html -# -# You can get CMake to generate this file for you by adding: -# set( CMAKE_EXPORT_COMPILE_COMMANDS 1 ) -# to your CMakeLists.txt file. -# -# Most projects will NOT need to set this to anything; you can just change the -# 'flags' list of compilation flags. Notice that YCM itself uses that approach. -compilation_database_folder = GuessBuildDirectory() - -if os.path.exists(compilation_database_folder): - database = ycm_core.CompilationDatabase(compilation_database_folder) -else: - database = None - - -def MakeRelativePathsInFlagsAbsolute(flags, working_directory): - """ - Iterate through 'flags' and replace the relative paths prefixed by - '-isystem', '-I', '-iquote', '--sysroot=' with absolute paths - start with 'working_directory'. - """ - if not working_directory: - return list(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 IsHeaderFile(filename): - """ - Check whether 'filename' is considered as a header file. - """ - extension = os.path.splitext(filename)[1] - return extension in HEADER_EXTENSIONS - - -def GetCompilationInfoForFile(filename): - """ - Helper function to look up compilation info of 'filename' in the 'database'. - """ - # The compilation_commands.json file generated by CMake does not have - # entries for header files. So we do our best by asking the db for flags for - # a corresponding source file, if any. If one exists, the flags for that - # file should be good enough. - if not database: - return None - - if IsHeaderFile(filename): - basename = os.path.splitext(filename)[0] - for extension in SOURCE_EXTENSIONS: - replacement_file = basename + extension - if os.path.exists(replacement_file): - compilation_info = \ - database.GetCompilationInfoForFile(replacement_file) - if compilation_info.compiler_flags_: - return compilation_info - return None - return database.GetCompilationInfoForFile(filename) - - -def FlagsForFile(filename, **kwargs): - """ - Callback function to be invoked by YouCompleteMe in order to get the - information necessary to compile 'filename'. - - It returns a dictionary with a single element 'flags'. This element is a - list of compiler flags to pass to libclang for the file '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 = GetCompilationInfoForFile(filename) - if not compilation_info: - return None - - final_flags = MakeRelativePathsInFlagsAbsolute( - compilation_info.compiler_flags_, - compilation_info.compiler_working_dir_) - - else: - relative_to = DirectoryOfThisScript() - final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) - - return { - "flags": final_flags, - "do_cache": True - }