(name, value, cm, cfg)
| 9741 | } |
| 9742 | |
| 9743 | function setOption(name, value, cm, cfg) { |
| 9744 | var option = options[name]; |
| 9745 | cfg = cfg || {}; |
| 9746 | var scope = cfg.scope; |
| 9747 | if (!option) { |
| 9748 | throw Error('Unknown option: ' + name); |
| 9749 | } |
| 9750 | if (option.type == 'boolean') { |
| 9751 | if (value && value !== true) { |
| 9752 | throw Error('Invalid argument: ' + name + '=' + value); |
| 9753 | } else if (value !== false) { |
| 9754 | // Boolean options are set to true if value is not defined. |
| 9755 | value = true; |
| 9756 | } |
| 9757 | } |
| 9758 | if (option.callback) { |
| 9759 | if (scope !== 'local') { |
| 9760 | option.callback(value, undefined); |
| 9761 | } |
| 9762 | if (scope !== 'global' && cm) { |
| 9763 | option.callback(value, cm); |
| 9764 | } |
| 9765 | } else { |
| 9766 | if (scope !== 'local') { |
| 9767 | option.value = option.type == 'boolean' ? !!value : value; |
| 9768 | } |
| 9769 | if (scope !== 'global' && cm) { |
| 9770 | cm.state.vim.options[name] = {value: value}; |
| 9771 | } |
| 9772 | } |
| 9773 | } |
| 9774 | |
| 9775 | function getOption(name, cm, cfg) { |
| 9776 | var option = options[name]; |
no outgoing calls
no test coverage detected