# TabSize seems to be ignored (config help requested)

**URL:** <https://discuss.codemirror.net/t/tabsize-seems-to-be-ignored-config-help-requested/3367>\
**Category:** v6\
**Created:** [July 16, 2021, 3:18pm UTC](https://discuss.codemirror.net/t/tabsize-seems-to-be-ignored-config-help-requested/3367 "2021-07-16T15:18:13Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mattpauldavies](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/mattpauldavies/32/1380_2.png) [@mattpauldavies](https://discuss.codemirror.net/u/mattpauldavies)\
**Post date:** [July 16, 2021, 3:18pm UTC](https://discuss.codemirror.net/t/tabsize-seems-to-be-ignored-config-help-requested/3367/1 "2021-07-16T15:18:14Z")

</div>

I’m learning CM 6 after using CM 5 previously.

I have a very basic editor config:

```javascript
import { EditorState } from '@codemirror/state';
import { EditorView } from '@codemirror/view';
import { python } from '@codemirror/lang-python';
import { basicSetup } from '@codemirror/basic-setup';

const state = EditorState.create({
  extensions: [
    basicSetup,
    python(),
  ],
});

new EditorView({
  state: state,
  parent: DOM_ELEMENT,
});

```

The editor renders and works perfectly apart from the `tabSize`. If I log `state.tabSize` I get `4`.

However, if I type some Python code that triggers an indent, such as:

```python
while True:
  a = 2 # a dumb example

```

When I hit return after the `while` to start the second line I get an indentation of 2 spaces, I would have expected 4…

Have I missed a step or misunderstood what `tabSize` refers to?

---

<div class="post-metadata">

**Author:** ![mattpauldavies](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/mattpauldavies/32/1380_2.png) [@mattpauldavies](https://discuss.codemirror.net/u/mattpauldavies)\
**Post date:** [July 19, 2021, 9:47am UTC](https://discuss.codemirror.net/t/tabsize-seems-to-be-ignored-config-help-requested/3367/2 "2021-07-19T09:47:21Z")

</div>

I found an answer to my own question. For anyone else that gets confused:

`tabSize` refers to the number of columns a **tab** takes up. It does not effect the _amount_ of indentation.

This differs from other editors you may be used to, the “Tab Size” setting in VS Code for example.

If you are not using tabs at all you want to change the number of spaces used to indent, you want the `indentUnit` facet. More detail here: [CodeMirror 6 set indentation unit](https://discuss.codemirror.net/t/codemirror-6-set-indentation-unit/2972)

---

<div class="post-metadata">

**Author:** ![YoniChechik](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/yonichechik/32/3534_2.png) [@YoniChechik](https://discuss.codemirror.net/u/YoniChechik)\
**Post date:** [July 20, 2023, 9:30pm UTC](https://discuss.codemirror.net/t/tabsize-seems-to-be-ignored-config-help-requested/3367/3 "2023-07-20T21:30:51Z")

</div>

This solved it:

import { indentUnit } from “@codemirror/language”;  
…  
\<CodeMirror  
extensions={[python(),…, indentUnit.of(" ")]}  
…
