OLD | NEW |
1 " Copyright 2017 The Chromium Authors. All rights reserved. | 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 | 2 " Use of this source code is governed by a BSD-style license that can be |
3 " found in the LICENSE file. | 3 " found in the LICENSE file. |
4 | 4 |
5 function! gn#TranslateToBuildFile(name) abort | 5 function! gn#TranslateToBuildFile(name) abort |
6 " Strip '//' prefix | 6 " Strip '//' prefix |
7 let l:new_path = substitute(a:name, '\v^//', '', '') | 7 let l:new_path = substitute(a:name, '\v^//', '', '') |
8 | 8 |
9 " Strip the build target name (necessary if 'isfname' contains ':') | 9 " Strip the build target name (necessary if 'isfname' contains ':') |
10 let l:new_path = substitute(l:new_path, '\v:.*$', '', '') | 10 let l:new_path = substitute(l:new_path, '\v:.*$', '', '') |
11 | 11 |
12 " Append 'BUILD.gn', only if this is a directory and not a file | 12 " Append 'BUILD.gn', only if this is a directory and not a file |
13 if isdirectory(l:new_path) | 13 " Prefer using maktaba if it's available, but fallback to an alternative |
14 let l:new_path = substitute(l:new_path, '\v/?$', '/BUILD.gn', '') | 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 |
15 endif | 24 endif |
16 return l:new_path | 25 return l:new_path |
17 endfunction | 26 endfunction |
OLD | NEW |