Add a CI check for todo!
and FIXME
comments (#21950)
Motivation for this is to support writing comments that will certainly be revisited before merge. Release Notes: - N/A
This commit is contained in:
parent
e4493d60dc
commit
f3fc4d6279
15 changed files with 29 additions and 14 deletions
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
|
@ -94,6 +94,10 @@ jobs:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
|
||||||
|
# To support writing comments that they will certainly be revisited.
|
||||||
|
- name: Check for todo! and FIXME comments
|
||||||
|
run: script/check-todos
|
||||||
|
|
||||||
- name: Run style checks
|
- name: Run style checks
|
||||||
uses: ./.github/actions/check_style
|
uses: ./.github/actions/check_style
|
||||||
|
|
||||||
|
|
|
@ -252,7 +252,7 @@ spec:
|
||||||
value: "${AUTO_JOIN_CHANNEL_ID}"
|
value: "${AUTO_JOIN_CHANNEL_ID}"
|
||||||
securityContext:
|
securityContext:
|
||||||
capabilities:
|
capabilities:
|
||||||
# FIXME - Switch to the more restrictive `PERFMON` capability.
|
# TODO - Switch to the more restrictive `PERFMON` capability.
|
||||||
# This capability isn't yet available in a stable version of Debian.
|
# This capability isn't yet available in a stable version of Debian.
|
||||||
add: ["SYS_ADMIN"]
|
add: ["SYS_ADMIN"]
|
||||||
terminationGracePeriodSeconds: 10
|
terminationGracePeriodSeconds: 10
|
||||||
|
|
|
@ -51,8 +51,8 @@ impl FileIcons {
|
||||||
pub fn get_icon(path: &Path, cx: &AppContext) -> Option<SharedString> {
|
pub fn get_icon(path: &Path, cx: &AppContext) -> Option<SharedString> {
|
||||||
let this = cx.try_global::<Self>()?;
|
let this = cx.try_global::<Self>()?;
|
||||||
|
|
||||||
// FIXME: Associate a type with the languages and have the file's language
|
// TODO: Associate a type with the languages and have the file's language
|
||||||
// override these associations
|
// override these associations
|
||||||
maybe!({
|
maybe!({
|
||||||
let suffix = path.icon_stem_or_suffix()?;
|
let suffix = path.icon_stem_or_suffix()?;
|
||||||
|
|
||||||
|
|
|
@ -357,7 +357,7 @@ impl From<ImageFormat> for image::ImageFormat {
|
||||||
ImageFormat::Jpeg => image::ImageFormat::Jpeg,
|
ImageFormat::Jpeg => image::ImageFormat::Jpeg,
|
||||||
ImageFormat::Webp => image::ImageFormat::WebP,
|
ImageFormat::Webp => image::ImageFormat::WebP,
|
||||||
ImageFormat::Gif => image::ImageFormat::Gif,
|
ImageFormat::Gif => image::ImageFormat::Gif,
|
||||||
// ImageFormat::Svg => todo!(),
|
// TODO: ImageFormat::Svg
|
||||||
ImageFormat::Bmp => image::ImageFormat::Bmp,
|
ImageFormat::Bmp => image::ImageFormat::Bmp,
|
||||||
ImageFormat::Tiff => image::ImageFormat::Tiff,
|
ImageFormat::Tiff => image::ImageFormat::Tiff,
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
|
|
|
@ -54,7 +54,7 @@ They can also be detected automatically, for example https://zed.dev/blog.
|
||||||
## Images
|
## Images
|
||||||
Images are like links, but with an exclamation mark `!` in front.
|
Images are like links, but with an exclamation mark `!` in front.
|
||||||
|
|
||||||
```todo!
|
```markdown
|
||||||

|

|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -1668,7 +1668,7 @@ impl BufferStore {
|
||||||
.log_err();
|
.log_err();
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo!(max): do something
|
// TODO(max): do something
|
||||||
// client
|
// client
|
||||||
// .send(proto::UpdateStagedText {
|
// .send(proto::UpdateStagedText {
|
||||||
// project_id,
|
// project_id,
|
||||||
|
|
|
@ -3142,7 +3142,7 @@ impl LspStore {
|
||||||
fn request_workspace_config_refresh(&mut self) {
|
fn request_workspace_config_refresh(&mut self) {
|
||||||
*self._maintain_workspace_config.1.borrow_mut() = ();
|
*self._maintain_workspace_config.1.borrow_mut() = ();
|
||||||
}
|
}
|
||||||
// todo!
|
|
||||||
pub fn prettier_store(&self) -> Option<Model<PrettierStore>> {
|
pub fn prettier_store(&self) -> Option<Model<PrettierStore>> {
|
||||||
self.as_local().map(|local| local.prettier_store.clone())
|
self.as_local().map(|local| local.prettier_store.clone())
|
||||||
}
|
}
|
||||||
|
|
|
@ -515,7 +515,7 @@ impl project::ProjectItem for NotebookItem {
|
||||||
Ok(nbformat::Notebook::V4(notebook)) => notebook,
|
Ok(nbformat::Notebook::V4(notebook)) => notebook,
|
||||||
// 4.1 - 4.4 are converted to 4.5
|
// 4.1 - 4.4 are converted to 4.5
|
||||||
Ok(nbformat::Notebook::Legacy(legacy_notebook)) => {
|
Ok(nbformat::Notebook::Legacy(legacy_notebook)) => {
|
||||||
// todo!(): Decide if we want to mutate the notebook by including Cell IDs
|
// TODO: Decide if we want to mutate the notebook by including Cell IDs
|
||||||
// and any other conversions
|
// and any other conversions
|
||||||
let notebook = nbformat::upgrade_legacy_notebook(legacy_notebook)?;
|
let notebook = nbformat::upgrade_legacy_notebook(legacy_notebook)?;
|
||||||
notebook
|
notebook
|
||||||
|
|
|
@ -57,7 +57,7 @@ impl OutputContent for MarkdownView {
|
||||||
|
|
||||||
fn buffer_content(&mut self, cx: &mut WindowContext) -> Option<Model<Buffer>> {
|
fn buffer_content(&mut self, cx: &mut WindowContext) -> Option<Model<Buffer>> {
|
||||||
let buffer = cx.new_model(|cx| {
|
let buffer = cx.new_model(|cx| {
|
||||||
// todo!(): Bring in the language registry so we can set the language to markdown
|
// TODO: Bring in the language registry so we can set the language to markdown
|
||||||
let mut buffer = Buffer::local(self.raw_text.clone(), cx)
|
let mut buffer = Buffer::local(self.raw_text.clone(), cx)
|
||||||
.with_language(language::PLAIN_TEXT.clone(), cx);
|
.with_language(language::PLAIN_TEXT.clone(), cx);
|
||||||
buffer.set_capability(language::Capability::ReadOnly, cx);
|
buffer.set_capability(language::Capability::ReadOnly, cx);
|
||||||
|
|
|
@ -610,7 +610,7 @@ impl Session {
|
||||||
|
|
||||||
// Start a new kernel
|
// Start a new kernel
|
||||||
this.update(&mut cx, |session, cx| {
|
this.update(&mut cx, |session, cx| {
|
||||||
// todo!(): Differentiate between restart and restart+clear-outputs
|
// TODO: Differentiate between restart and restart+clear-outputs
|
||||||
session.clear_outputs(cx);
|
session.clear_outputs(cx);
|
||||||
session.start_kernel(cx);
|
session.start_kernel(cx);
|
||||||
})
|
})
|
||||||
|
|
|
@ -386,7 +386,7 @@ fn session_state(session: View<Session>, cx: &WindowContext) -> ReplMenuState {
|
||||||
indicator: None,
|
indicator: None,
|
||||||
kernel_name: kernel_name.clone(),
|
kernel_name: kernel_name.clone(),
|
||||||
kernel_language: kernel_language.clone(),
|
kernel_language: kernel_language.clone(),
|
||||||
// todo!(): Technically not shutdown, but indeterminate
|
// TODO: Technically not shutdown, but indeterminate
|
||||||
status: KernelStatus::Shutdown,
|
status: KernelStatus::Shutdown,
|
||||||
// current_delta: Duration::default(),
|
// current_delta: Duration::default(),
|
||||||
}
|
}
|
||||||
|
|
2
docs/theme/css/chrome.css
vendored
2
docs/theme/css/chrome.css
vendored
|
@ -327,7 +327,7 @@ pre > code {
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: ACE editors overlap their buttons because ACE does absolute
|
/* TODO: ACE editors overlap their buttons because ACE does absolute
|
||||||
positioning within the code block which breaks padding. The only solution I
|
positioning within the code block which breaks padding. The only solution I
|
||||||
can think of is to move the padding to the outer pre tag (or insert a div
|
can think of is to move the padding to the outer pre tag (or insert a div
|
||||||
wrapper), but that would require fixing a whole bunch of CSS rules.
|
wrapper), but that would require fixing a whole bunch of CSS rules.
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
(#any-of? @variable "workspace")))
|
(#any-of? @variable "workspace")))
|
||||||
|
|
||||||
; Terraform specific keywords
|
; Terraform specific keywords
|
||||||
; FIXME: ideally only for identifiers under a `variable` block to minimize false positives
|
; TODO: ideally only for identifiers under a `variable` block to minimize false positives
|
||||||
((identifier) @type
|
((identifier) @type
|
||||||
(#any-of? @type "bool" "string" "number" "object" "tuple" "list" "map" "set" "any"))
|
(#any-of? @type "bool" "string" "number" "object" "tuple" "list" "map" "set" "any"))
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
(#any-of? @variable "workspace")))
|
(#any-of? @variable "workspace")))
|
||||||
|
|
||||||
; Terraform specific keywords
|
; Terraform specific keywords
|
||||||
; FIXME: ideally only for identifiers under a `variable` block to minimize false positives
|
; TODO: ideally only for identifiers under a `variable` block to minimize false positives
|
||||||
((identifier) @type
|
((identifier) @type
|
||||||
(#any-of? @type "bool" "string" "number" "object" "tuple" "list" "map" "set" "any"))
|
(#any-of? @type "bool" "string" "number" "object" "tuple" "list" "map" "set" "any"))
|
||||||
|
|
||||||
|
|
11
script/check-todos
Executable file
11
script/check-todos
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Brackets are used around characters so these don't show up in normal search.
|
||||||
|
pattern='tod[o]!|FIXM[E]'
|
||||||
|
result=$(git grep --no-color --ignore-case --line-number --extended-regexp -e $pattern || true)
|
||||||
|
echo "${result}"
|
||||||
|
if [[ -n "${result}" ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Add table
Add a link
Reference in a new issue