2
local helpers = require('test.functional.helpers')
3
local clear = helpers.clear
4
local execute, expect = helpers.execute, helpers.expect
6
describe('filename modifiers', function()
9
it('is working', function()
10
local tmpdir = helpers.nvim('eval', 'resolve("/tmp")')
12
execute('cd ' .. tmpdir)
13
execute([=[set shell=sh]=])
14
execute([=[set shellslash]=])
15
execute([=[let tab="\t"]=])
16
execute([=[command -nargs=1 Put :let expr=<q-args> | $put =expr.tab.strtrans(string(eval(expr)))]=])
17
execute([=[let $HOME=fnamemodify('.', ':p:h:h:h')]=])
18
execute([=[Put fnamemodify('.', ':p' )[-1:]]=])
19
execute([=[Put fnamemodify('.', ':p:h' )[-1:]]=])
20
execute([=[Put fnamemodify('test.out', ':p' )[-1:]]=])
21
execute([=[Put fnamemodify('test.out', ':.' )]=])
22
execute([=[Put fnamemodify('../testdir/a', ':.' )]=])
23
execute([=[Put fnamemodify('test.out', ':~' )]=])
24
execute([=[Put fnamemodify('../testdir/a', ':~' )]=])
25
execute([=[Put fnamemodify('../testdir/a', ':t' )]=])
26
execute([=[Put fnamemodify('.', ':p:t' )]=])
27
execute([=[Put fnamemodify('test.out', ':p:t' )]=])
28
execute([=[Put fnamemodify('test.out', ':p:e' )]=])
29
execute([=[Put fnamemodify('test.out', ':p:t:e' )]=])
30
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r' )]=])
31
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r' )]=])
32
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' )]=])
33
execute([=[Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')]=])
34
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e' )]=])
35
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e' )]=])
36
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' )]=])
37
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')]=])
38
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:r' )]=])
39
execute([=[Put fnamemodify('abc def', ':S' )]=])
40
execute([=[Put fnamemodify('abc" "def', ':S' )]=])
41
execute([=[Put fnamemodify('abc"%"def', ':S' )]=])
42
execute([=[Put fnamemodify('abc'' ''def', ':S' )]=])
43
execute([=[Put fnamemodify('abc''%''def', ':S' )]=])
44
execute([=[Put fnamemodify("abc\ndef", ':S' )]=])
45
execute([=[set shell=tcsh]=])
46
execute([=[Put fnamemodify("abc\ndef", ':S' )]=])
47
execute([=[1 delete _]=])
49
-- Assert buffer contents.
51
fnamemodify('.', ':p' )[-1:] '/'
52
fnamemodify('.', ':p:h' )[-1:] 'p'
53
fnamemodify('test.out', ':p' )[-1:] 't'
54
fnamemodify('test.out', ':.' ) 'test.out'
55
fnamemodify('../testdir/a', ':.' ) '../testdir/a'
56
fnamemodify('test.out', ':~' ) 'test.out'
57
fnamemodify('../testdir/a', ':~' ) '../testdir/a'
58
fnamemodify('../testdir/a', ':t' ) 'a'
59
fnamemodify('.', ':p:t' ) ''
60
fnamemodify('test.out', ':p:t' ) 'test.out'
61
fnamemodify('test.out', ':p:e' ) 'out'
62
fnamemodify('test.out', ':p:t:e' ) 'out'
63
fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar'
64
fnamemodify('abc.fb2.tar.gz', ':r:r' ) 'abc.fb2'
65
fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc'
66
substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '') ']=] .. tmpdir .. [=[/abc.fb2'
67
fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz'
68
fnamemodify('abc.fb2.tar.gz', ':e:e' ) 'tar.gz'
69
fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz'
70
fnamemodify('abc.fb2.tar.gz', ':e:e:e:e') 'fb2.tar.gz'
71
fnamemodify('abc.fb2.tar.gz', ':e:e:r' ) 'tar'
72
fnamemodify('abc def', ':S' ) '''abc def'''
73
fnamemodify('abc" "def', ':S' ) '''abc" "def'''
74
fnamemodify('abc"%"def', ':S' ) '''abc"%"def'''
75
fnamemodify('abc'' ''def', ':S' ) '''abc''\'''' ''\''''def'''
76
fnamemodify('abc''%''def', ':S' ) '''abc''\''''%''\''''def'''
77
fnamemodify("abc\ndef", ':S' ) '''abc^@def'''
78
fnamemodify("abc\ndef", ':S' ) '''abc\^@def''']=])