This package consumes the following services:
Bem-levels package for Atom
Handy search BEM-entities from project levels for Atom.
Atom is a text editor for development.
BEM is a component-based approach for web development.

Features
- Sorting files in the order of project levels.
- Search any BEM-entities in any technologies.
- Search BEM-entity in specified technology.
- Autofilling search field by:
- name of current active file and highlighting it in the list;
- last search query when the current active file does not relate with project.
- Support the groups (multiple sets of project levels).
Usage
Step 1: Install
› apm install bem-levels
Step 2: Configuring project levels
Unfortunately, now Atom has no built-in mechanism for per-project config settings. Because of this reason bem-levels use package local-config for store information about project levels.
Format of local config similar to the Atom global configuration settings.
Example of .atom.cson in project root:
'*':
'bem-levels':
'levels':
'touch': [
'lib1/common.blocks/'
'lib1/touch.blocks/'
'lib2/touch.blocks/'
'common.blocks/'
'touch.blocks/'
]
In example above specified that for any file (*), package bem-levels has group touch, which consists of levels list.
Step 3: Setting up key bindings
We already can use bem-levels by invoke command-palette with shift-cmd-p shortcut, then type "Bem Levels: Touch" and press enter. This sequence of actions each time can be tedious. Atom allows to customize key bindings.
Example of ~/.atom/keymap.cson:
'atom-workspace':
'shift-cmd-i': 'bem-levels:touch'
Options
Schema of all options is stored in the property configSchema from package.json.
targetTechs
Sets target technologies of files for searching.
In fact it is regexp for match extensions (js, bemhtml.js, etc) of files.
Default: .*
Example of searching only *.js and *.bemhtml.js files:
'*':
'bem-levels':
'targetTechs': '^js|bemhtml.js'
Development details
Install
› git clone https://github.com/tenorok/atom-bem-levels.git
› cd atom-bem-levels
› npm install
› apm link
Used packages
Package @bem/walk used for work with BEM file structure. Packages @bem/naming and @bem/entity-name used for work with BEM entities.
Atom package file-icons used for create file icons to list.
For run tests used mocha and chai with assert style.
Also used flowtype with comment syntax for type checking on precommit hook.