Skip to content

Commit

Permalink
[Console Monaco] Resolve uncaught error from tokenizer (#188746)
Browse files Browse the repository at this point in the history
Fixes #186765

## Summary

This PR fixes the uncaught error from the tokenizer when we add the
input below:

<details>
<summary>Test input</summary>

```
GET /
GET _cluster/settings?include_defaults&flat_settings&filter_path=*.*interval*
PUT _cluster/settings
{
  "persistent": {
    "indices.lifecycle.poll_interval": "10s"
  }
}

GET _cat/${TEST}

PUT _data_stream/test-cold
POST test-cold/_rollover

GET _cat/indices?v&h=
GET _cat/indices/.alerts-observability.threshold.alerts-default,.alerts-default.alerts-default,

GET _cat/indices,aliases

GET _cat/shards/test*?v
"""
index                                    shard prirep state      docs store dataset ip         node
.ds-test-cold-2024.05.20-000002          0     p      STARTED       0  249b    249b 172.19.0.2 839a1677bdab
.ds-test-cold-2024.05.20-000002          0     r      UNASSIGNED                               
restored-.ds-test-cold-2024.05.20-000001 0     p      STARTED       0  289b    289b 172.19.0.2 839a1677bdab
"""

GET restored-.ds-test-cold-2024.05.20-000001/_settings

"""
          "snapshot": {
            "snapshot_name": "2024.05.20-.ds-test-cold-2024.05.20-000001-test-h5yr-_tws6es6biug0uqbw",
            "index_uuid": "8tXgFf_cR2KIMofpj2I7Uw",
            "repository_uuid": "3i3oPavIQZGeYOQzRZajyQ",
            "index_name": ".ds-test-cold-2024.05.20-000001",
            "repository_name": "fs",
            "snapshot_uuid": "3S3CDGZgSh2XQSRO3UTxVA"
          }
"""

DELETE _snapshot/fs/2024.05.20-.ds-test-cold-2024.05.20-000001-test-h5yr-_tws6es6biug0uqbw

POST _ilm/stop

POST restored-.ds-test-cold-2024.05.20-000001/_clone/.ds-test-cold-2024.05.20-000001
{
  "settings": {
    "index.store.type": null,
    "index.recovery.type": null
  }
}

# Check the cloned index & shards
GET _cat/indices/.ds-test-cold-2024.05.20-000001?v
GET _cat/shards/.ds-test-cold-2024.05.20-000001?v

PUT _snapshot/fs/2024.05.20-.ds-test-cold-2024.05.20-000001
{
  "indices": ".ds-test-cold-2024.05.20-000001",
  "ignore_unavailable": false,
  "include_global_state": false
}

# Check the taken snapshot

GET _snapshot/fs/2024.05.20-.ds-test-cold-2024.05.20-000001
"""
      "snapshot": "2024.05.20-.ds-test-cold-2024.05.20-000001",
      "uuid": "GC7xoG1yQN6W5LIUMqCDYA",
"""




PUT _snapshot/fs/temp-snapshot-for-recovery
{
  "indices": "restored-.ds-test-cold-2024.05.20-000001",
  "ignore_unavailable": false,
  "include_global_state": false
}
GET _snapshot/fs/temp-snapshot-for-recovery
"""
      "snapshot": "temp-snapshot-for-recovery",
      "uuid": "NgFDtQMESv2o4BZd0dsP8g",
"""

GET .ds-test-cold-2024.05.20-000002
"""
{
  ".ds-test-cold-2024.05.20-000002": {
    "aliases": {},
    "mappings": {
      "_data_stream_timestamp": {
        "enabled": true
      },
      "properties": {
        "@timestamp": {
          "type": "date"
        }
      }
    },
    "settings": {
      "index": {
        "lifecycle": {
          "name": "test"
        },
        "routing": {
          "allocation": {
            "include": {
              "_tier_preference": "data_hot"
            }
          }
        },
        "hidden": "true",
        "number_of_shards": "1",
        "provided_name": ".ds-test-cold-2024.05.20-000002",
        "creation_date": "1716175738940",
        "priority": "100",
        "number_of_replicas": "1",
        "uuid": "nvldBwt2QxeQzpkrbK69qQ",
        "version": {
          "created": "8503000"
        }
      }
    },
    "data_stream": "test-cold"
  }
}
"""


```
</details>

**How to test:** Add the input above in Console editor and verify that
there is no uncaught error in the browser error.

This change also resolves some highlighting inconsistencies, where some
text was incorrectly highlighted as a `method` and `url` tokens:

Before:

<img width="919" alt="Screenshot 2024-07-19 at 17 15 05"
src="https://github.com/user-attachments/assets/3865f5ee-3f8e-4f85-a44d-a7ee73338621">


<img width="919" alt="Screenshot 2024-07-19 at 17 24 33"
src="https://github.com/user-attachments/assets/07326394-8425-40fd-863e-8314e15763fb">

<br><br>

Now:

<img width="919" alt="Screenshot 2024-07-19 at 17 12 07"
src="https://github.com/user-attachments/assets/e2afde99-bc49-4dc5-ad4f-4727ef604534">


<img width="919" alt="Screenshot 2024-07-19 at 17 25 39"
src="https://github.com/user-attachments/assets/e8778eb2-93be-461f-80f0-abdc810874b4">
  • Loading branch information
ElenaStoeva authored Jul 23, 2024
1 parent cc92c47 commit db5a839
Showing 1 changed file with 2 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ export const languageConfiguration: monaco.languages.LanguageConfiguration = {

export const lexerRules: monaco.languages.IMonarchLanguage = {
...consoleSharedLexerRules,
ignoreCase: true,
tokenizer: {
...consoleSharedLexerRules.tokenizer,
root: [
...consoleSharedLexerRules.tokenizer.root,
// method
matchTokensWithEOL('method', /([a-zA-Z]+)/, 'root', 'method_sep'),
matchTokensWithEOL('method', /get|post|put|patch|delete|head/, 'root', 'method_sep'),
// whitespace
matchToken('whitespace', '\\s+'),
// text
Expand Down

0 comments on commit db5a839

Please sign in to comment.