1" Copyright 2017 The Chromium Authors. All rights reserved. 2" Use of this source code is governed by a BSD-style license that can be 3" found in the LICENSE file. 4 5function! gn#TranslateToBuildFile(name) abort 6 " Strip '//' prefix 7 let l:new_path = substitute(a:name, '\v^//', '', '') 8 9 " Strip the build target name (necessary if 'isfname' contains ':') 10 let l:new_path = substitute(l:new_path, '\v:.*$', '', '') 11 12 " Append 'BUILD.gn', only if this is a directory and not a file 13 " Prefer using maktaba if it's available, but fallback to an alternative 14 if exists('*maktaba#path#Basename') 15 " Check if the last part of the path appears to be a file 16 if maktaba#path#Basename(l:new_path) !~# '\V.' 17 let l:new_path = maktaba#path#Join([l:new_path, 'BUILD.gn']) 18 endif 19 else 20 " This will break if 'autochdir' is enabled 21 if isdirectory(l:new_path) 22 let l:new_path = substitute(l:new_path, '\v/?$', '/BUILD.gn', '') 23 endif 24 endif 25 return l:new_path 26endfunction 27