How to make sublime text 3's SublimeOnSaveBuild package not compile the file named beginning with _ prefix?

For Example. I want a.scss or a_b.scss files can be complied when I saving this files. But not include the files such as named _a.scss.

I saw the guide in github is to set the filename_filter configuring.

So I create a SublimeOnSaveBuild.sublime-settings.Contents:

{
    "filename_filter": "/^([^_])\\w*.(sass|less|scss)$/"
}

I used two \ , because it seems would saved as a .sublime-settings file which format likes JSON.

But it doesn't work.I use JavaScript to test it, it works well !

let reg = /^[^\_]\w*.(sass|less|scss)$/,
 arr = [
  'a.scss',
  '_a.scss',
  'a_b.scss'
 ];
arr.forEach(function( filename ) {
 console.log( filename + '\t' + reg.test(filename) );
});

// a.scss true
// _a.scss false
// a_b.scss true

Thanks!


I found a solution in joshuawinn. But I can't understand why my codes can't work...

{
    "filename_filter": "(/|\\\\|^)(?!_)(\\w+)\\.(css|js|sass|less|scss)$",
    "build_on_save": 1
}

Sorry for my poor English !

1

There are 1 answers

2
brtsos On
let reg = /^(_|)\w*.(sass|less|scss)$/,
    arr = [
        'a.scss',
        '_a.scss',
        'a_b.scss'
    ];
arr.forEach(function( filename ) {
    console.log( filename + '\t' + reg.test(filename) );
});